[DBUEB] Aufgabe 4

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 :slight_smile:


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 :slight_smile: