Group-by-Klausel
Willkommen zum Intermediate SQL-Kurs!
Im ersten Abschnitt beschäftigen wir uns damit, wie wir Daten in unseren Tabellen gruppieren und aggregieren können.
Lassen Sie uns anhand eines einfachen Beispiels einer Mitarbeitertabelle verstehen, was "Daten gruppieren" bedeutet:
Gruppierung von Daten
Wir haben die Aufgabe, die Anzahl der Mitarbeiter in jeder Abteilung zu ermitteln. Dazu gruppieren wir die Daten nach der Spalte department und verwenden eine Aggregation mit der Funktion COUNT(*).
So sieht die Umsetzung aus:
123SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
Wie Sie sehen, sieht die Syntax für das Gruppieren 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 spezifischen Spalten zu ermitteln.
Betrachten wir ein weiteres Beispiel: Wir haben die Aufgabe, die Abteilung mit dem höchsten durchschnittlichen Gehalt zu finden.
Um solche Daten abzurufen, müssen wir die Daten nach der Spalte department gruppieren und anschließend die Funktion AVG() verwenden, um das durchschnittliche Gehalt zu berechnen:
123SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
In diesem Abschnitt arbeiten wir mit der Montreal Metro Systemdatenbank, die die Tabelle metro_travel_time enthält.
Diese Tabelle enthält Informationen über die Linie der Station (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).
Hier ist eine Ansicht dieser Tabelle und eine Datenvorschau:
Wie Sie sehen, handelt es sich um keine komplexe Tabelle. Überlegen wir, wo wir hier Gruppierungen verwenden können.
Die naheliegendste Möglichkeit ist Gruppierung nach den Farben der Metrolinien. Das bedeutet, wir können die Daten aggregieren, indem wir sie nach der Farbe der Metrolinie gruppieren.
Alias
In den Aufgaben wird häufig ein Konzept namens Alias verwendet. Ein Alias ist im Wesentlichen ein "Spitzname" für eine Spalte, die mit einer SELECT-Anweisung abgerufen wird. Die Syntax lautet wie folgt:
SELECT column AS alias
Ein Alias beeinflusst nur, wie die Spalte in der Antwort angezeigt wird.
Beispielsweise kann anstelle von MAX(time) die Spalte max_time genannt werden, wenn dieser Alias zugewiesen wird. Dies macht die Ausgabe lesbarer und übersichtlicher.
Swipe to start coding
Ihre Aufgabe ist es, die längste Zeit bis zur nächsten Station auf jeder Linie zu ermitteln. Dadurch können wir die längste Fahrzeit zwischen Stationen für jede U-Bahn-Linie 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 Maximalwert 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
Can you explain more about how GROUP BY works in SQL?
What are some common aggregate functions I can use with GROUP BY?
How do I use aliases in more complex SQL queries?
Großartig!
Completion Rate verbessert auf 4
Group-by-Klausel
Swipe um das Menü anzuzeigen
Willkommen zum Intermediate SQL-Kurs!
Im ersten Abschnitt beschäftigen wir uns damit, wie wir Daten in unseren Tabellen gruppieren und aggregieren können.
Lassen Sie uns anhand eines einfachen Beispiels einer Mitarbeitertabelle verstehen, was "Daten gruppieren" bedeutet:
Gruppierung von Daten
Wir haben die Aufgabe, die Anzahl der Mitarbeiter in jeder Abteilung zu ermitteln. Dazu gruppieren wir die Daten nach der Spalte department und verwenden eine Aggregation mit der Funktion COUNT(*).
So sieht die Umsetzung aus:
123SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
Wie Sie sehen, sieht die Syntax für das Gruppieren 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 spezifischen Spalten zu ermitteln.
Betrachten wir ein weiteres Beispiel: Wir haben die Aufgabe, die Abteilung mit dem höchsten durchschnittlichen Gehalt zu finden.
Um solche Daten abzurufen, müssen wir die Daten nach der Spalte department gruppieren und anschließend die Funktion AVG() verwenden, um das durchschnittliche Gehalt zu berechnen:
123SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
In diesem Abschnitt arbeiten wir mit der Montreal Metro Systemdatenbank, die die Tabelle metro_travel_time enthält.
Diese Tabelle enthält Informationen über die Linie der Station (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).
Hier ist eine Ansicht dieser Tabelle und eine Datenvorschau:
Wie Sie sehen, handelt es sich um keine komplexe Tabelle. Überlegen wir, wo wir hier Gruppierungen verwenden können.
Die naheliegendste Möglichkeit ist Gruppierung nach den Farben der Metrolinien. Das bedeutet, wir können die Daten aggregieren, indem wir sie nach der Farbe der Metrolinie gruppieren.
Alias
In den Aufgaben wird häufig ein Konzept namens Alias verwendet. Ein Alias ist im Wesentlichen ein "Spitzname" für eine Spalte, die mit einer SELECT-Anweisung abgerufen wird. Die Syntax lautet wie folgt:
SELECT column AS alias
Ein Alias beeinflusst nur, wie die Spalte in der Antwort angezeigt wird.
Beispielsweise kann anstelle von MAX(time) die Spalte max_time genannt werden, wenn dieser Alias zugewiesen wird. Dies macht die Ausgabe lesbarer und übersichtlicher.
Swipe to start coding
Ihre Aufgabe ist es, die längste Zeit bis zur nächsten Station auf jeder Linie zu ermitteln. Dadurch können wir die längste Fahrzeit zwischen Stationen für jede U-Bahn-Linie 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 Maximalwert 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