Databases Reference
In-Depth Information
8.1
Gruppierung in einer Tabelle
Bisher wurden Berechnungen nur über gesamte Tabellen
durchgeführt. Der Ansatz wurde im Unterkapitel „7.3 Nutzung
von Aggregatsfunktionen“ vorgestellt. Nachdem unser Zoo im
Beispiel Zuwachs bekommen hat, ist man auch an anderen Fra-
gen interessiert. Ein Beispiel ist die Frage nach der Anzahl der
Tiere pro Gattung. Soll diese Anfrage mit dem bisherigen Wis-
sen beantwortet werden, so muss man mit einer ersten Anfrage
feststellen, welche Gattungen im Zoo vertreten sind:
SELECT DISTINCT Tier.Gattung
FROM Tier
Vorgehensweise
ohne Gruppie-
rung
Das Ergebnis der Anfrage lautet:
GATTUNG
-------
Baer
Hase
Schaf
Im zweiten Schritt findet dann eine Auswertung pro Gattung
von Hand statt, die z. B. für die Schafe wie folgt aussieht:
SELECT COUNT(*) Schafanzahl
FROM Tier
WHERE Tier.Gattung='Schaf'
Das Ergebnis ist:
SCHAFANZAHL
-----------
3
Dieser Ansatz ist für Anfrage-Experten unbefriedigend. Grund-
sätzlich versucht man Anfragen-Probleme mit einer Anfrage zu
lösen, ohne dass von Hand Zwischenergebnisse notiert werden
müssen. Das Problem ist aber, dass bis jetzt nur Berechnungen
auf ganzen Tabellen möglich sind. Dieses Problem löst der An-
satz der Gruppierung mit GROUP BY . Die Idee besteht darin,
dass man angibt, dass pro anzugebendem Attribut Berechnun-
gen durchgeführt werden.
Zentrales Ziel
des Profis: keine
Zwischenergeb-
nisse notieren
Die Anfrage mit GROUP BY lautet:
SELECT Tier.Gattung, COUNT(*) Tieranzahl
FROM Tier
GROUP BY Tier.Gattung
Das Ergebnis ist:
174
Search WWH ::




Custom Search