Lektion 2: Aggregatfunktionen |
Aggregatfunktionen |
Mit den Aggregatfunktionen kannst Du statistische Auswertungen numerischer Daten in einer Datenbank vornehmen. Jede Aggregatfunktion wird auf ein Attribut einer Tabelle angewendet und liefert als Ergebnis einen Zahlenwert zurück. |
SUM() |
SUM (=engl. für Summe) Dieser SQL-Befehl zählt die aus der Abfrage resultierenden Zahlenwerte (numerischen Werte) der Spalte zusammen, auf die er angewendet wird. |
Ein Beispiel |
In diesem Beispiel wollen wir wissen, wie viele Punkte alle Weltmeister zusammen haben. select sum(WM_Punkte) as Gesamtpunktzahl from WMTitel Tipp: Setzt man as hinter einen Spaltennamen kann man der Spalte einen neuen Namen geben. |
Erläuternde Grafik zu SUM und COUNT |
COUNT() |
COUNT (=engl. für Anzahl) Dieser Befehl zählt die Anzahl der von NULL verschiedenen Werte einer Spalte in der Ergebnistabelle. Alle Datensätze zählt man mit count(*). Will man nur die verschiedenen Werte einer Spalte zählen, so benutzt man count(distinct Spaltenname). |
Ein Beispiel |
In diesem Beispiel wollen wir wissen, wie oft Michael Schuhmacher Weltmeister war. select count(Fahrerweltmeister) as Anzahl_der_WM-Titel from WMTitel where Fahrerweltmeister = 'Michael Schumacher' |
MIN() & MAX() |
MAXIMUM (engl. für Maximum) MINIMUM (engl. für Minimum) Benutzt man diese Befehle, so erhält man die größte/kleinste Zahl, also das Maximum/Minimum der Spalte. |
Ein Beispiel |
Jetzt wollen wir wissen, was die meisten/wenigsten WM-Punkte sind, die jemals erfahren
wurden. select max(WM_Punkte) as Max_WM_Punkte from WMTitel bzw. select min(WM_Punkte) as Min_WM_Punkte from WMTitel |
Erläuternde Grafik |
AVG() |
AVERAGE (engl. für Mittelwert) Ähnlich wie MIN und MAX gibt uns AVG den Mittelwert (Durchschnitt) aller Zahlenwerte einer Spalte. Dabei werden alle Einträge addiert und dann durch die Anzahl der Einträge geteilt. |
Ein Beispiel |
Uns interessiert jetzt wie viele Punkte die Fahrer im Durchschnitt hatten, die Weltmeister
wurden. select avg(WM_Punkte) as Durchschnitt from WMTitel oder (nur zum Verstehen) select sum(WM_Punkte) / count(WM_Punkte) as Durchschnitt from WMTitel |
Erläuterung |
avg(WM_Punkte) = sum(WM_Punkte) / count(WM_Punkte) In Zahlen: 1226 : 12 = 102,16 (Durchschnitt = Summe der Punkte : Anzahl der Zeilen) |
Hinweis |
Ohne die GROUP BY-Klausel kannst Du Aggregatfunktionen und die Auswahl von Attributen nicht mischen.
Die folgende select-Anweisung liefert also einen Fehler: select Fahrerweltmeister, sum(WM_Punkte) from WMTitel |
Auf geht's! | |
Hier geht es zu den Übungen der Lektion 2. |