Erste Seite Zurück Weiter Letzte Seite Übersicht Grafik
Gruppierung & Aggregatfunktionen
Datensätze nach bestimmten Merkmalen zusammengruppieren (ähnlich wie sortieren, aber weitere Funktionalität möglich)
SELECT ... FROM ... WHERE ...
GROUP BY <Spaltenliste>
[HAVING <Bedingung>]
HAVING-Klausel legt Bedingung für GROUP BY fest
(vgl. WHERE und SELECT)
i.A. zusammen mit Aggregatfunktion
Notizen:
Beispiel: (Unterschied WHERE und HAVING)
Gruppe Wert
A 1
A 2
A 3
A 4
B 2
B 3
B 5
SELECT Gruppe, SUM(Wert) AS SumWert
FROM Gruppen
WHERE Wert >=3
GROUP BY Gruppe;
Gruppe SumWert
A 7
B 8
SELECT Gruppe, SUM(Wert) AS SumWert
FROM Gruppen
GROUP BY Gruppe
HAVING SUM(Wert) >= 3;
Gruppe SumWert
A 10
B 10
z.B.: Durchschnittliche Bestellmenge aller Artikel die heuer öfter als 5x geordert wurden (= in 5 Aufträgen vorkamen, egal wie viele Stück jeweils)
SELECT Artikelnummer, avg(Stueck)
FROM Auftraege
WHERE year(Datum) = year(getdate())
GROUP BY Artikelnummer
HAVING count(*) >= 5;