Databases Reference
In-Depth Information
len. Die Anfrage, die im konkreten Beispiel keine Ergebniszeile
liefert, lautet:
SELECT Tier.Gnr
FROM Tier
GROUP BY Tier.Gnr
HAVING COUNT(DISTINCT Tier.Gattung)>=3
8.3
Gruppierungen über mehreren Tabellen
Die Ideen der Gruppierung lassen sich direkt auf Anfragen
über mehrere Tabellen übertragen. Wieder muss erst nach der
geeigneten Anfrage gesucht werden, in der dann nach ausge-
wählten Attributen gruppiert wird. Danach können Gruppen
mit der HAVING -Bedingung ausgewählt werden. ORDER BY
sorgt zusätzlich für eine Sortierung. Mit der SELECT -Zeile wer-
den dann die für das Ergebnis interessanten Informationen
ausgewählt.
Ein typisches Beispiel ist die Frage nach der Fläche, die durch
die Tiere in jedem Gehege verbraucht wird. Es soll zu jedem
Gehegenamen die verbrauchte Fläche bestimmt werden. Zu-
nächst wird eine Anfrage benötigt, in der alle Informationen
stehen. Diese Anfrage sieht wie folgt aus:
Konstruktion
einer Gruppie-
rungsanfrage
über mehrere
Tabellen
SELECT Gehege.Gname, Tier.Gattung,
Art.MinFlaeche
FROM Gehege, Tier, Art
WHERE Gehege.Gnr=Tier.Gnr
AND Tier.Gattung=Art.Gattung
ORDER BY Gehege.Gname
Das Ergebnis der Anfrage ist:
GNAME GATTUNG MINFLAECHE
------ ------- ----------
Feld Hase 2
Feld Hase 2
Feld Schaf 5
Feld Hase 2
Wald Baer 8
Wald Baer 8
Weide Hase 2
Weide Schaf 5
Weide Schaf 5
Das Sortierkriterium wird in die GROUP BY -Zeile übernommen
und die notwendige Berechnung in der SELECT -Zeile durchge-
führt.
SELECT Gehege.Gname,
181
Search WWH ::




Custom Search