SQL Statement :S Hilfe

uebertreiber

Neuer Benutzer
Beiträge
1
hi ich hab mal ne frage ich hab ein problem mit einem SQL Statement... unzwar soll ich das hier ausgeben lassen nur weiß ich leider nicht genau wie, ich denke man müsste es mit dem AVG() machen oder ?
Kann mir da vllt jemand helfen ?

Welchen Durchschnittspreis haben CDs, auf denen Musiker aus mindestens 3 Nationen spielen

Tabelle 1: Name = lied
Spalten:
lied_id
medium_id
lied_titel
laenge

Tabelle 2: Name = medium
Spalten:
medium_id
medium_titel
medium_art
preis
erscheinungsjahr

Tabelle 3: Name = musiker
Spalten:
person_id
role
lied_id
gruppe

Tabelle 4 Name = person
Spalten:
person_id
name
natinalitaet




wäre euch sehr dankbar wenn ihr mir helfen könntet
smile.gif


SELECT AVG(preis) FROM medium;
damit lasse ich den Durchscnittspreis angeben aber ich weiß leider nicht wie ich die nationalität miteinbinden kann :/
 
Werbung:
hi ich hab mal ne frage ich hab ein problem mit einem SQL Statement... unzwar soll ich das hier ausgeben lassen nur weiß ich leider nicht genau wie, ich denke man müsste es mit dem AVG() machen oder ?
Kann mir da vllt jemand helfen ?

AVG() paßt schon. Aber erst einmal die CD's ermitteln, die in die Auswahl kommen. Vereinfachte und von Dir etwas abweichende Tabellen:

Code:
test=*# \d musiker
  Table "public.musiker"
  Column  |  Type  | Modifiers
---------------+---------+-----------
 id  | integer | not null  
 nationalitaet | integer |
Indexes:
  "musiker_pkey" PRIMARY KEY, btree (id)
Referenced by:
  TABLE "lied" CONSTRAINT "lied_musiker_fkey" FOREIGN KEY (musiker) REFERENCES musiker(id)

test=*# \d lied
  Table "public.lied"
 Column  |  Type  | Modifiers
---------+---------+-----------
 id  | integer | not null
 musiker | integer |
Indexes:
  "lied_pkey" PRIMARY KEY, btree (id)
Foreign-key constraints:
  "lied_musiker_fkey" FOREIGN KEY (musiker) REFERENCES musiker(id)
Referenced by:
  TABLE "medium_lied" CONSTRAINT "medium_lied_lied_fkey" FOREIGN KEY (lied) REFERENCES lied(id)

test=*# \d medium
  Table "public.medium"
 Column |  Type  | Modifiers
--------+---------+-----------
 id  | integer | not null
 preis  | integer |
Indexes:
  "medium_pkey" PRIMARY KEY, btree (id)
Referenced by:
  TABLE "medium_lied" CONSTRAINT "medium_lied_medium_fkey" FOREIGN KEY (medium) REFERENCES medium(id)

test=*# \d medium_lied
  Table "public.medium_lied"
 Column |  Type  | Modifiers
--------+---------+-----------
 id  | integer | not null
 medium | integer |
 lied  | integer |
Indexes:
  "medium_lied_pkey" PRIMARY KEY, btree (id)
Foreign-key constraints:
  "medium_lied_lied_fkey" FOREIGN KEY (lied) REFERENCES lied(id)
  "medium_lied_medium_fkey" FOREIGN KEY (medium) REFERENCES medium(id)

Folgendes SELECT liefert Dir erst einmal die Medium-ID, den Preis und die Anzahl an Nationalitäten:

Code:
test=*# select m.id, m.preis, count(distinct mu.nationalitaet) from medium_lied ml left join medium m on ml.medium=m.id left join lied l on ml.lied=l.id left join musiker mu on l.musiker=mu.id group by m.id,m.preis;

Das sollte jetzt reichen, daß Du deine Hausaufgaben hinbekommst, oder?
 
Werbung:
Zurück
Oben