Mithilfe von Aggregatfunktionen kannst Du Berechnungen aus verschiedenen Werten erstellen. Als Ergebnis bekommst Du einen einzelnen Wert. Aggregatfunktionen verwendest Du in der SELECT-Klausel deiner Abfrage. Schematisch dargestellt sähe die Anwendung folgendermaßen aus:
SELECT Aggregatfunktion(Tabellenattribut) FROM Tabelle;
In den folgenden Beispielen arbeiten wir mit folgender Mitarbeiter-Tabelle:
Datum |
Name |
Gehalt |
---|---|---|
01.04.2010 |
Jana |
450€ |
01.06.2011 |
Paul |
300€ |
01.10.2009 |
Paul |
400€ |
01.06.2010 |
Leon |
400€ |
01.06.2011 |
Jana |
350€ |
Der SUM( )-Befehl (engl.: to sum = addieren) addiert alle Zahlenwerte der Spalte, auf die er angewendet wird.
SELECT SUM(Gehalt) FROM Mitarbeiter;
Lösung: 1900 (450+300+400+400+350)
Natürlich kannst Du die Ausgabe immer noch mithilfe der WHERE-Klausel spezifizieren.
SELECT SUM(Gehalt) FROM Mitarbeiter WHERE Name LIKE "Jana";
Lösung: 800 (450+350)
Durch den COUNT( )-Befehl (engl.: to count = zählen) erhältst Du die Anzahl aller Zeilen, die auf die Suche zutreffen. Die Anzahl aller Datensätze bekommst Du, wenn Du den Stern (*) anstatt von Attributen angibst: COUNT(*).
Der Ausdruck COUNT(DISTINCT Spaltenname) zählt, wie viele unterschiedliche Werte es in einer Spalte gibt. Natürlich kannst Du die Ausgabe immer noch mithilfe der WHERE-Klausel spezifizieren.
SELECT COUNT(Datum) FROM Mitarbeiter;
Lösung: 5 (01.04.2010, 01.06.2011, 01.10.2009, 01.06.2010, 01.06.2011)
SELECT COUNT(Datum) FROM Mitarbeiter WHERE Datum = "1.6.2011";
Lösung: 2
MIN( ) bzw. MAX( ) gibt den kleinsten bzw. größten (engl.: minimum/maximum) Wert der Spalte aus.
SELECT MIN(Gehalt) FROM Mitarbeiter;
Lösung: 300 (der kleinste Wert in der Spalte "Gehalt")
SELECT MAX(Gehalt) FROM Mitarbeiter WHERE Name LIKE "Paul";
Lösung: 400
Mithilfe des AVG( )-Befehls (engl.: average = Durchschnitt) erhältst Du den Durchschnittswert aller Zahlenwerte einer Spalte. Der Durchschnitt wird gebildet, indem alle Zahlenwerte addiert und durch ihre Anzahl geteilt werden.
SELECT AVG(Gehalt) FROM Mitarbeiter;
Lösung: 380 ( (450+300+400+400+350) / 5 )
SELECT AVG(Gehalt) FROM Mitarbeiter WHERE Datum = "01.06.2011";
Lösung: 325 ( (300+350) / 2 )