Aggregation und Gruppierung in SQL
Swipe um das Menü anzuzeigen
SQL-Aggregation verwendet die GROUP BY-Klausel, um Rohdaten in zusammenfassende Zeilen anzuordnen. Mit Funktionen wie SUM(), AVG() und COUNT() lassen sich Millionen von Zeilen direkt in einer SQL-Zelle in aussagekräftige Geschäftskennzahlen umwandeln.
Für viele ist SQL die natürlichste Sprache zur Datenzusammenfassung. Die Syntax ist sehr gut lesbar und folgt einem logischen Ablauf: Kategorien auswählen, Berechnungen bestimmen und Gruppen definieren. In diesem Kapitel wird die zuvor erstellte temporäre Ansicht verwendet, um die gleichen Aggregationen wie in Python durchzuführen – jedoch mit der Einfachheit von SQL.
Die GROUP BY-Klausel
In SQL muss jede Spalte, die nicht "mathematisch zusammengefasst" wird, in der GROUP BY-Anweisung am Ende der Abfrage enthalten sein. Dies teilt der SQL-Engine genau mit, wie die Daten aufgeteilt werden sollen.
SELECT cut, COUNT(*)
FROM diamond_view
GROUP BY cut
Verwendung integrierter Aggregatfunktionen
SQL stellt mehrere Standardfunktionen zur Verfügung, um Berechnungen für numerische Spalten durchzuführen:
- SUM(): summiert alle Werte in der Spalte;
- AVG(): berechnet den Mittelwert/Durchschnitt;
- MIN() / MAX(): findet den niedrigsten oder höchsten Wert;
- COUNT(): gibt die Anzahl der Zeilen zurück.
%sql
SELECT
cut,
SUM(x),
AVG(y)
FROM diamond_view
GROUP BY cut
Aliasnamen für professionelle Berichte
Standardmäßig benennt SQL die Ergebnisspalten beispielsweise als sum(Total_Profit). Um die Ausgabe für ein Business-Dashboard vorzubereiten, kann das AS-Schlüsselwort verwendet werden, um diese Spalten aussagekräftiger zu benennen.
%sql
SELECT
cut,
SUM(x) AS Total_Length,
MAX(y) AS Highest_Diamond_Value
FROM diamond_view
GROUP BY cut
Filtern aggregierter Daten: Die HAVING-Klausel
Ein häufiger Fehler ist der Versuch, ein aggregiertes Ergebnis mit WHERE zu filtern. In SQL filtert WHERE einzelne Zeilen, bevor sie gruppiert werden. Wenn die Ergebnisse nach der Aggregation gefiltert werden sollen (zum Beispiel, um nur Regionen mit mehr als $1.000.000 Gewinn anzuzeigen), muss die HAVING-Klausel verwendet werden.
%sql
SELECT cut, SUM(x) AS Total_Length
FROM diamond_view
GROUP BY cut
HAVING Total_Length > 4000
Sortieren der Zusammenfassung
Zur Hervorhebung von Erkenntnissen stets ORDER BY verwenden. Dies ermöglicht die Sortierung der Ergebnisse, beispielsweise um die profitabelsten Regionen oben in der Tabelle anzuzeigen.
%sql
SELECT cut, SUM(x) AS Total_Length
FROM diamond_view
GROUP BY cut
ORDER BY Total_Length DESC
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen