Aggregatfunktionen

Theorie Icon 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;
    
    
    KlasseAnzahl_Schueler
    8c2
    9a2
    10a1
    10b3