single
GROUP BY-Klausel
Swipe um das Menü anzuzeigen
Willkommen zum Intermediate SQL-Kurs!
Im ersten Abschnitt geht es darum, wie Daten in Tabellen gruppiert und aggregiert werden können.
Hier wird das "Gruppieren von Daten" anhand eines einfachen Beispiels einer employees-Tabelle erläutert:
Gruppierung von Daten
Ziel ist es, die Anzahl der Mitarbeiter in jeder Abteilung zu ermitteln. Dazu werden die Daten nach der Spalte department gruppiert und mit der Aggregatfunktion COUNT(*) ausgewertet.
Die Umsetzung sieht folgendermaßen aus:
123SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
Wie zu sehen ist, sieht die Syntax zur Gruppierung von Daten folgendermaßen aus:
SELECT column1, AGG_FUNC(column2)
FROM table
GROUP BY column1
AGG_FUNC bezeichnet Aggregatfunktionen wie MAX, MIN, COUNT usw.
Diese Syntax dient dazu, bestimmte Werte mithilfe von Aggregatfunktionen in bestimmten Spalten zu ermitteln.
Ein weiteres Beispiel: Die Aufgabe besteht darin, die Abteilung mit dem höchsten Durchschnittsgehalt zu finden.
Um solche Daten abzurufen, müssen die Daten nach der Spalte department gruppiert und anschließend die Funktion AVG() verwendet werden, um das Durchschnittsgehalt zu berechnen:
123SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
In diesem Abschnitt arbeiten Sie mit der Montreal Metro Systemdatenbank, die die Tabelle metro_travel_time enthält.
Diese Tabelle enthält Informationen über die U-Bahn-Linie (line_name), ihren Namen (station_name) und die Zeit, die ein Zug benötigt, um von einer Station zur nächsten zu fahren (time_to_next_station).
So sieht diese Tabelle aus und hier ist eine Datenvorschau:
Wie zu sehen ist, handelt es sich nicht um eine komplexe Tabelle. Überlegen Sie, wo wir hier Gruppierungen verwenden können.
Die naheliegendste Möglichkeit ist Gruppierung nach den Farben der U-Bahn-Linien. Das bedeutet, wir können die Daten aggregieren, indem wir sie nach der Farbe der U-Bahn-Linie gruppieren.
Alias
In den Aufgaben wirst du häufig ein Konzept namens Alias verwenden. Ein Alias ist im Wesentlichen ein „Spitzname“ für eine Spalte, die du mit einer SELECT-Anweisung abrufst. Er wird mit folgender Syntax angegeben:
SELECT column AS alias
Ein Alias beeinflusst nur, wie die Spalte in der Antwort angezeigt wird.
Zum Beispiel könnte anstelle von MAX(time) die Spalte max_time genannt werden, wenn du diesen Alias zuweist. Das macht die Ausgabe lesbarer und verständlicher.
Wischen, um mit dem Codieren zu beginnen
Ihre Aufgabe ist es, die längste Zeit bis zur nächsten Station auf jeder Linie zu ermitteln. Dies hilft dabei, die längste Fahrzeit zwischen Stationen für jede U-Bahn-Linie zu bestimmen. Verwenden Sie dazu die Funktion MAX() und vergeben Sie den Alias max_time, indem Sie die Daten nach der Spalte line_name gruppieren.
Kurzanleitung
- Rufen Sie die Spalte
line_nameund den maximalen Wert der Spaltetime_to_next_stationaus der Tabellemetro_travel_timeab. - Vergeben Sie für den Maximalwert den Alias
max_time. - Gruppieren Sie die Daten nach der Spalte
line_name.
Lösung
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen