Aggregatfunktionen... Diese Dinger sind echte Zauberer in der Datenanalyse! Sie helfen dir, Millionen von Datenzeilen in kompakte und verständliche Ergebnisse zu verwandeln. Damit kannst du zählen, Minimum und Maximum finden, Werte mitteln und noch viele andere Sachen machen. Lass uns das Ganze mal Schritt für Schritt anschauen.
Aggregatfunktionen sind spezielle SQL-Funktionen, die Operationen auf Gruppen von Zeilen ausführen und ein einzelnes Ergebnis zurückgeben. Wenn man das vergleicht, ist das so, als würdest du alle Statistiken über deinen Morgenkaffee sammeln, zum Beispiel: wie viele Tassen du in einer Woche getrunken hast, ob du Zucker hinzugefügt hast oder wie viele Tage hintereinander du Sahne reingemacht hast.
Beispiele für Aufgaben, die Aggregatfunktionen lösen:
- Die Gesamtanzahl der Einträge in einer Tabelle zählen.
- Minimale oder maximale Werte in einer Zahlen-Spalte finden.
- Werte in einer Spalte aufsummieren.
- Alle Werte einer Spalte mitteln.
- Einzigartige Werte herausfiltern.
Wie läuft das "unter der Haube" ab?
SQL führt eine Aggregatfunktion nach dem Auswählen der Daten im SELECT aus. Zum Beispiel, wenn du SUM() oder AVG() angibst, sammelt SQL zuerst die Daten und berechnet dann nur für die ausgewählten Zeilen.
Die wichtigsten Aggregatfunktionen in PostgreSQL
Lass uns direkt in die Praxis gehen und die Top 5 unserer Helden anschauen:
COUNT()— zählt die Anzahl der Zeilen.SUM()— summiert die Werte einer Zahlen-Spalte.AVG()— berechnet den Durchschnittswert.MIN()— findet den kleinsten Wert.MAX()— findet den größten Wert.
Beispiele für die Nutzung von Aggregatfunktionen
- Zeilen zählen mit
COUNT()
Die Funktion COUNT() erlaubt es dir, die Gesamtanzahl der Zeilen in einer Tabelle oder die Anzahl der nicht-leeren Werte in einer bestimmten Spalte zu zählen.
Beispiel: Angenommen, wir haben eine Tabelle students, die Infos über Studierende speichert:
| id | name | age | grade |
|---|---|---|---|
| 1 | Otto Art | 20 | 85 |
| 2 | Maria Chi | 22 | 90 |
| 3 | Alex Lin | 21 | 78 |
| 4 | Anna Song | 23 | NULL |
Zählen wir die Gesamtanzahl der Studierenden:
SELECT
COUNT(*) AS total_students
FROM students;
Ergebnis:
| total_students |
|---|
| 4 |
Jetzt zählen wir die Anzahl der Studierenden, bei denen grade angegeben ist:
SELECT
COUNT(grade) AS students_with_grades
FROM students;
Ergebnis:
| students_with_grades |
|---|
| 3 |
Warum ist das so? Weil COUNT(column) die NULL-Werte ignoriert.
- Summieren mit
SUM()
Die Funktion SUM() wird genutzt, um alle Werte in einer Zahlen-Spalte zu summieren.
Beispiel: Lass uns herausfinden, wie viele Punkte unsere Studierenden insgesamt gesammelt haben.
SELECT
SUM(grade) AS total_grades
FROM students;
Ergebnis:
| total_grades |
|---|
| 253 |
Hinweis: Wenn es NULL in der Spalte gibt, werden sie beim Summieren einfach ignoriert.
- Durchschnitt berechnen mit
AVG()
Die Funktion AVG() berechnet den Durchschnitt aller Zahlenwerte in einer Spalte.
Beispiel: Lass uns den Durchschnitt der Noten der Studierenden berechnen.
SELECT
AVG(grade) AS average_grade
FROM students;
Ergebnis:
| average_grade |
|---|
| 84.33 |
Du hast vielleicht gemerkt, dass NULL wieder ignoriert werden.
- Minimum und Maximum mit
MIN()undMAX()
Manchmal muss man den kleinsten oder größten Wert finden. Dafür gibt es MIN() und MAX().
Beispiel: Finden wir den jüngsten und den ältesten Studierenden.
SELECT
MIN(age) AS youngest_student,
MAX(age) AS oldest_student
FROM students;
Ergebnis:
| youngest_student | oldest_student |
|---|---|
| 20 | 23 |
Mehr Details zu diesen Funktionen gibt's in den nächsten Vorlesungen.
Was ist eigentlich NULL?
Über NULL gibt's bald eine eigene Vorlesung, aber ganz kurz: NULL bedeutet, dass kein Wert vorhanden ist. Nichts. Leere. Nullik, wie er ist!
Nehmen wir an, wir haben eine Tabelle students, die Infos über Studierende speichert:
| id | name | age | grade | hobbie |
|---|---|---|---|---|
| 1 | Otto Art | 20 | 85 | |
| 2 | Maria Chi | 22 | 90 | Tanz |
| 3 | Alex Lin | 21 | 78 | |
| 4 | Anna Song | 23 |
Name und Alter sind immer da, aber Note und Hobby können fehlen. Wenn in einer Tabellenzelle überhaupt kein Wert steht, sagt man, dass sie NULL enthält. NULL ist keine Zahl und kein String, sondern eine spezielle Kennzeichnung, die das Fehlen eines beliebigen Wertes anzeigt.
GO TO FULL VERSION