Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
[DBUEB] Aufgabe 4
Hi,
hier mal meine ersten beiden Anfragen:
SQL> @a1.sql
2 rows updated.
SQL> @a2.sql
234 rows deleted.
254 rows deleted.
122 rows deleted.
127 rows deleted.
116 rows deleted.
117 rows deleted.
1 row deleted.
Bei der 2. Abfrage sterben die Satze in der Reihenfolge capacity, fare, booking, flight_intervals, flight, aircraft, aircraft_type, bloss, damit ihr die Anzahl der getoeteten Saetze vergleichen koennt.
Habt ihr dieselben Anzahlen?
a3:
AIRCRAFT_DESCRIPTION CRUISING_SPEED
---------------------------------------------------------------- --------------
ENGINES AVG_SPEED
---------- ----------
MCDONNELL DOUGLAS DC10 (ALL SERIES) 573
3 405.857143
MCDONNELL DOUGLAS MD-11 588
3 405.857143
LOCKHEED L1011-500 TRISTAR 558
3 405.857143
AIRCRAFT_DESCRIPTION CRUISING_SPEED
---------------------------------------------------------------- --------------
ENGINES AVG_SPEED
---------- ----------
LOCKHEED L1011 (ALL SERIES) 558
3 405.857143
BRITISH AEROSPACE 146 (ALL SERIES) 440
4 353.714286
MCDONNELL DOUGLAS DC8 (ALL 60/70 SERIES) 531
4 353.714286
AIRCRAFT_DESCRIPTION CRUISING_SPEED
---------------------------------------------------------------- --------------
ENGINES AVG_SPEED
---------- ----------
BOEING 747 PASSENGER (ALL SERIES) 622
4 353.714286
BOEING 747SP 622
4 353.714286
23 rows selected.
Das ist meine “Join-Loesung”, ich habe aber keine Self-Join gemacht, dafuer aber eine View angelegt. Ist das auch in Ordnung?
1-3 hab ich auch so, zur
4:
TO_AIRPORT SUMME
43 439
41 775
38 1006
(Ich hab hier mal angenommen, er nimmt bei jedem flight_interval den billigsten Flug)
und 5:
RANK FLIGHT_ID TIME
1 101004 413
2 105470 412
3 105469 403
4 104330 400
5 105468 399
Ich komme bei 1-5 auf die gleichen Ergebnisse wie Ihr
So,
die A5 habe ich auch so.
Bei der A4 habe ich aber keine Ahnung, wie man das machen soll. Any hints?
Hi,
jetzt endlich habe ich die 5 auch. Das ist wirklich tricky SQL, das muss (zumindest ich) zugestehen. Das ist wirklich krank :]. Aber es geht.
Vielleicht sollte man statt den airport_ids den Namen ausgeben, nur so noch als Hinweis. Bei mir sieht das dann so aus:
AIRPORT_NAME SUM
---------------------------------------- ----------
SAN FRANCISCO INTERNATIONAL 439
LINDBERGH FIELD/SAN DIEGO INTERNATIONAL 775
SKY HARBOR INTERNATIONAL 1006
Gruesse,
-Steppenwolf
Hi!
Habt ihr Lust mal so ne Richtung anzugeben (in Prosa) wie das SQL-Statement Nr. 4 funktionieren soll (und bitte nicht: “Es ist eine Subquery nötig mit Self-Join über der Relation flight_intervals”) ?
Hab zwar die anderen Aufgaben und das sollte für die 50 % reichen, möchte aber gern wissen, wie man sowas lösen könnte.
Leider komm ich aber net weiter, als die Airports mit den Einzelpreisen abzufragen.
Vielen Dank,
celine
Hi Celine,
Es ist eine Subquery nötig mit Self-Join über der Relation flight_intervals" :].
Nein, im Ernst:
Ich habe erstmal in einer View alle Flugintervalle des Fluges drinnen, die am billigsten sind.
Dann kommt der tolle Self-Join (wie bei TOP-10 auch), wobei du ueber der arrival_time joinen musst, damit die Flugintervalle in der richtigen Reihenfolge sind.
Hilft dir das?
Gruesse,
-Steppenwolf
EDIT: Uebrigens habe ich zwei Posts weiter oben natuerlich die Nummer 4 und nicht 5 gemeint, die so tricky ist.
Danke, hatte es aber nach zig Stunden Hirn zermartern schon so ähnlich gelöst