Aggregatfunktionen
SUM
, AVG
und COUNT
sind sogenannte Aggregatfunktionen (kurz: Aggregate) und tun genau das, was deren Namen schon vermuten lassen: Während AVG
und SUM
für eine numerische Spalte den Durchschnittswert bzw. die Summe aller Werte ausgibt, gibt COUNT
die Anzahl Reihen aus, die mit der Bedingung übereinstimmen.
- Gib die durchschnittliche Klassenstufe aller Schüler mit dem Vornamen David aus:
SELECT AVG(Klassenstufe) FROM Schueler WHERE Vorname = 'David';
- Gib die Anzahl Schüler aus, die in die Klasse 10b gehen:
SELECT COUNT(S_Nr) FROM Schueler WHERE Klasse = '10b';
Im Zusammenhang mit Aggregaten wird häufig GROUP BY
verwendet. GROUP BY
gruppiert die Dateneinträge (Reihen) entsprechend der Werte einer Tabellenspalte, auf die das Statement angewendet wurde. Enthält die Abfrage zusätzlich ein Aggregat, wie bswp. COUNT
, wird die Anzahl Dateneinträge der jeweils gebildeten Gruppen zurückgegeben.
Das nachfolgend abgebildete Beispiel zeigt, wie beides in Kombination angewendet werden kann. In diesem wird jeweils für jede Klasse die Anzahl Schüler ausgegeben. Zum besseren Verständnis wurde die Tabellenspalte, die die Anzahl Schüler ausgibt auch entsprechend mittels AS
umbenannt:
SELECT Klasse, COUNT(S_Nr) AS Anzahl_Schueler FROM Schueler GROUP BY Klasse;
Klasse Anzahl_Schueler 8c 2 9a 2 10a 1 10b 3