Aggregatfunktionen berechnen einen einzelnen Wert aus einer Menge von Zeilen — COUNT, SUM, AVG, MIN, . Sie sind unverzichtbar für die Zusammenfassung von Daten (Summen, Durchschnitte, Zählungen), besonders in Kombination mit .
Aggregatfunktionen berechnen einen einzelnen Wert aus einer Menge von Zeilen — COUNT, SUM, AVG, MIN, . Sie sind unverzichtbar für die Zusammenfassung von Daten (Summen, Durchschnitte, Zählungen), besonders in Kombination mit .
MAXGROUP BYSELECT
COUNT(*) AS total_rows, -- count all rows
COUNT(email) AS rows_with_email, -- count NON-NULL emails (ignores NULLs!)
SUM(amount) AS total_amount, -- sum of a column
AVG(price) AS average_price, -- average
MIN(price) AS lowest, -- minimum
MAX(price) AS highest -- maximum
FROM orders;
Jede Funktion reduziert viele Zeilen auf einen Wert. SUM/AVG funktionieren mit Zahlen; MIN/MAX mit Zahlen, Daten oder Text; COUNT mit allem.
COUNT(*) -- counts ALL rows (including those with NULLs)
COUNT(email) -- counts only rows where email is NOT NULL
COUNT(DISTINCT country) -- counts UNIQUE non-null values
COUNT(*) zählt alle Zeilen, aber COUNT(column) zählt nur Zeilen, in denen diese Spalte nicht NULL ist — ein subtiler, aber wichtiger Unterschied. COUNT(DISTINCT col) zählt eindeutige Werte.
-- aggregate PER GROUP instead of the whole table
SELECT country, COUNT(*) AS users, AVG(age) AS avg_age
FROM users
GROUP BY country; -- one result row per country
-- → for each country: how many users and their average age
Ohne GROUP BY fasst ein Aggregate das gesamte Ergebnis in eine Zeile zusammen. Mit GROUP BY erzeugt es eine Zusammenfassungszeile pro Gruppe — die typische, mächtige Verwendung.
-- ❌ ERROR — can't mix an aggregate with a non-grouped column
SELECT name, COUNT(*) FROM users; -- which name? ambiguous
-- ✅ either group by it, or only select aggregates
SELECT country, COUNT(*) FROM users GROUP BY country;
Aggregatsunktionen sind unverzichtlich für Zusammenfassung und Analyse von Daten — das Berechnen von Summen, Durchschnitten, Zählungen und Extremwerten ist eine ständige Notwendigkeit in Berichten, Analysen, Dashboards und Anwendungslogik, daher ist das Verständnis dieser Funktionen grundlegendes SQL-Wissen.
Die Kenntnis der wichtigsten Funktionen (COUNT, SUM, AVG, MIN, MAX) und wie sie Zeilenmengen auf einzelne Werte reduzieren, ist notwendig für jede Datenzusammenfassung.
Ein wichtiges, häufig missverstandenes Detail ist der COUNT(*)-zu-COUNT(column)-Unterschied (COUNT(*) zählt alle Zeilen, COUNT(column) zählt nur Nicht-NULL-Werte — was überraschend unterschiedliche Ergebnisse liefern kann), zusammen mit COUNT(DISTINCT) für eindeutige Werte.
Am mächtigsten kombinieren sich Aggregate mit GROUP BY, um Zusammenfassungen pro Gruppe zu erstellen (Zählungen/Durchschnitte pro Kategorie) — die Grundlage analytischer Abfragen.
Das Verständnis der Falle, dass man Aggregate nicht mit nicht gruppierten Spalten mischen kann (ein häufiger Fehler), ist ebenfalls wichtig.
Da die Zusammenfassung von Daten eine allgegenwärtige Datenbankaufgabe ist (jeder Bericht, jedes Dashboard und jede Analyseabfrage verwendet Aggregate), und da das Verständnis der Funktionen, die COUNT-Feinheiten und besonders ihre Kombination mit GROUP BY grundlegend für die Datenanalyse in SQL ist, ist die Beherrschung von Aggregatfunktionen Kernwissen, das häufig angewendet wird und unverzichtbar für die Arbeit mit Daten — eine Brücke zwischen grundlegenden Abfragen und der analytischen, zusammenfassenden Kraft, die SQL für Berichte und Erkenntnisse wertvoll macht.