Eine Aggregat-Funktion fasst die Daten einer Spalte über alle Datensätze zusammen.
Somit erhält man als Ergebnis genau einen Wert.
Es gibt folgende Aggregate-Funktionen in SQL:
min
Liefert den minimalen Wert aller Daten dieser Spalte.
Dies geht mit Zahlen und Text.
max
Liefert den maximalen Wert aller Daten dieser Spalte.
Dies geht mit Zahlen und Text.
avg
Liefert den Durchschnitt (engl. average).
Dies geht nur mit Zahlen.
sum
Liefert die Summe aller Spalten-Werte (addiert sie auf).
Dies geht nur mit Zahlen.
count
Liefert die Anzahl der Daten (null-Werte werden nicht mitgezählt).
Dies geht mit allen Datentypen und sogar mit Datensätzen: count(*)
Aggregate und Spaltenwerte
Da eine Aggregat-Funktion die Werte über alle Datensätze (Zeilen) zusammenfasst,
gibt es keine eindeutigen Werte anderer Spalten. Somit führt es zu einem Fehler,
wenn man z.B. SELECT sum(wert), name FROM tabelle; macht.
Wie man dieses Problem löst kommt in der nächsten Lektion.
Mehrere Aggregat-Funktionen kann man problemlos in einer Abfrage verwenden: SELECT min(wert), max(wert), avg(wert), sum(wert), count(wert) FROM tabelle;
Aufgabe 1
Geben Sie ein SQL-Statement an, dass die Anzahl der CDs bestimmt.
SELECT count(*) FROM cd;
Bestimmen Sie die Anzahl der Lieder der CD 1.
SELECT count(*)
FROM aufcd
WHERE cdid=1;
Ermitteln Sie die größte ID der Interpreten.
SELECT max(id)
FROM interpret;
Bestimmen Sie die Anazhl der Interpreten, die keinen Rock spielen.
SELECT count(*)
FROM interpret
WHERE stilrichtung <> 'Rock';
Ermitteln Sie die Anzahl der Lieder, die kein Rock sind.
SELECT count(*)
FROM interpret
INNER JOIN von ON von.intid=interpret.id
WHERE stilrichtung <> 'Rock';