Lektion 2 | Aggregatfunktionen

Was sind Aggregatfunktionen?

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€

SUM( )

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)

COUNT( )

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( ) & MAX( )

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

AVG( )

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 )