SQL kurz und bündig (2)
Eine weitere häufige Datenbankaufgabe ist die Aggregation. Das bedeutet, dass man Daten reduziert, indem sie in Blöcke aufgeteilt und jeder Block zusammengefasst wird.
Dies geschieht in SQL mit dem Befehl GROUP BY
. Dieser Befehl teilt deine Daten in Gruppen auf und wendet eine Funktion aus deiner SELECT
-Anweisung auf jede Gruppe an.
Wenn du zum Beispiel die Anzahl der Flüge von jedem der beiden Abflugorte zählen möchtest, könntest du folgende Abfrage verwenden
SELECT COUNT(*) FROM flights
GROUP BY origin;
GROUP BY origin
teilt SQL mit, dass die Ausgabe eine Zeile für jeden eindeutigen Wert der Spalte origin
enthalten soll. Mit der SELECT
-Anweisung wählst du die Werte aus, die du in die einzelnen Spalten einfügen möchtest. Hier wollen wir mit COUNT()
jede Zeile in jeder der Gruppen zählen.
Es ist möglich, mittels GROUP BY
nach mehr als einer Spalte zu gruppieren. Die resultierende Tabelle enthält eine Zeile für jede Kombination der eindeutigen Werte in jeder Spalte. Die folgende Abfrage zählt die Anzahl der Flüge von SEA und PDX zu jedem Zielflughafen:
SELECT origin, dest, COUNT(*) FROM flights
GROUP BY origin, dest;
Die Ausgabe enthält eine Zeile für jede Kombination der Werte in origin
und dest
(d. h. eine Zeile mit allen Start- und Zielorten, die ein Flug angeflogen hat). Außerdem gibt es eine Spalte mit dem Wert von COUNT()
für alle Zeilen in jeder Gruppe.
Einen ausführlicheren Blick auf SQL findest du hier.
Welche Informationen würde diese Abfrage liefern? Denke daran, dass die Tabelle flights
Informationen über Flüge enthält, die 2014 und 2015 von PDX und SEA abgeflogen sind. Beachte, dass die Funktion AVG()
den Mittelwert einer Spalte ermittelt!
SELECT AVG(air_time) / 60 FROM flights
GROUP BY origin, carrier;
Diese Übung ist Teil des Kurses
Einführung in PySpark
Interaktive Übung
In dieser interaktiven Übung kannst du die Theorie in die Praxis umsetzen.
