Kursinhalt
Fortgeschrittene SQL
Fortgeschrittene SQL
Group by-Klausel
Willkommen zum Intermediate SQL Kurs!
Im ersten Abschnitt tauchen wir ein in die Möglichkeiten, unsere Daten in Tabellen zu gruppieren und zu aggregieren.
Lassen Sie uns verstehen, was es bedeutet, Daten zu gruppieren, anhand eines einfachen Beispiels einer Mitarbeitertabelle:
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 die Aggregationsfunktion COUNT(*)
.
So wird die Implementierung aussehen:
SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
Wie Sie sehen können, sieht die Syntax zum Gruppieren von Daten so aus:
Hinweis
AGG_FUNC
steht für Aggregatfunktionen wieMAX
,MIN
,COUNT
, usw.
Diese Syntax existiert, um bestimmte Werte unter Verwendung von Aggregatfunktionen in bestimmten Spalten zu finden.
Betrachten wir ein weiteres Beispiel: Wir wurden beauftragt, die Abteilung mit dem höchsten Durchschnittsgehalt zu finden.
Um solche Daten abzurufen, müssen wir die Daten nach der department
-Spalte gruppieren und anschließend die AVG()
-Funktion verwenden, um das Durchschnittsgehalt zu berechnen:
SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
In diesem Abschnitt arbeiten wir mit der Montreal Metro System Datenbank, die die metro_travel_time
-Tabelle enthält.
Diese Tabelle enthält Informationen über die Stationslinie(line_name
), ihren Namen(station_name
) und die benötigte Zeit für einen Zug, um von einer Station zur nächsten zu fahren(time_to_next_station
).
So sieht diese Tabelle aus und hier ist eine Datenvorschau:
Wie Sie sehen können, ist dies keine komplexe Tabelle. Lassen Sie uns überlegen, wo wir hier Gruppierung einsetzen können.
Die offensichtlichste Option ist Gruppierung nach den Farben der Metro-Linien. Das bedeutet, dass wir die Daten aggregieren können, indem wir sie nach der Farbe der Metro-Linie gruppieren.
Alias
In den Aufgaben werden Sie häufig ein Konzept verwenden, das als Alias bezeichnet wird. Ein Alias ist im Wesentlichen ein „Spitzname“ für eine Spalte, die Sie mit einer SELECT
-Anweisung abrufen. Er wird mit der folgenden Syntax angegeben:
Ein Alias beeinflusst nur, wie die Spalte in der Antwort erscheint.
Zum Beispiel könnte anstelle von MAX(time)
die Spalte max_time
genannt werden, wenn Sie diesen Alias zuweisen. Dies macht die Ausgabe lesbarer und klarer.
Swipe to start coding
Deine Aufgabe besteht darin, die längste Zeit bis zur nächsten Station auf jeder Linie zu finden. Dadurch können wir die längste Reisezeit zwischen den Stationen für jede U-Bahn-Linie ermitteln. Verwende dazu die MAX()
Funktion und weise ihr das Alias max_time
zu, indem du die Daten nach der Spalte line_name
gruppierst.
Kurze Anweisungen
- Rufe die Spalte
line_name
und den maximalen Wert der Spaltetime_to_next_station
ab. - Füge den Alias
max_time
für den maximalen Wert hinzu. - Gruppiere die Daten nach der Spalte
line_name
.
Sobald du diese Aufgabe abgeschlossen hast, klicke auf den Button unter dem Code, um deine Lösung zu überprüfen.
Lösung
Danke für Ihr Feedback!
Group by-Klausel
Willkommen zum Intermediate SQL Kurs!
Im ersten Abschnitt tauchen wir ein in die Möglichkeiten, unsere Daten in Tabellen zu gruppieren und zu aggregieren.
Lassen Sie uns verstehen, was es bedeutet, Daten zu gruppieren, anhand eines einfachen Beispiels einer Mitarbeitertabelle:
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 die Aggregationsfunktion COUNT(*)
.
So wird die Implementierung aussehen:
SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
Wie Sie sehen können, sieht die Syntax zum Gruppieren von Daten so aus:
Hinweis
AGG_FUNC
steht für Aggregatfunktionen wieMAX
,MIN
,COUNT
, usw.
Diese Syntax existiert, um bestimmte Werte unter Verwendung von Aggregatfunktionen in bestimmten Spalten zu finden.
Betrachten wir ein weiteres Beispiel: Wir wurden beauftragt, die Abteilung mit dem höchsten Durchschnittsgehalt zu finden.
Um solche Daten abzurufen, müssen wir die Daten nach der department
-Spalte gruppieren und anschließend die AVG()
-Funktion verwenden, um das Durchschnittsgehalt zu berechnen:
SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
In diesem Abschnitt arbeiten wir mit der Montreal Metro System Datenbank, die die metro_travel_time
-Tabelle enthält.
Diese Tabelle enthält Informationen über die Stationslinie(line_name
), ihren Namen(station_name
) und die benötigte Zeit für einen Zug, um von einer Station zur nächsten zu fahren(time_to_next_station
).
So sieht diese Tabelle aus und hier ist eine Datenvorschau:
Wie Sie sehen können, ist dies keine komplexe Tabelle. Lassen Sie uns überlegen, wo wir hier Gruppierung einsetzen können.
Die offensichtlichste Option ist Gruppierung nach den Farben der Metro-Linien. Das bedeutet, dass wir die Daten aggregieren können, indem wir sie nach der Farbe der Metro-Linie gruppieren.
Alias
In den Aufgaben werden Sie häufig ein Konzept verwenden, das als Alias bezeichnet wird. Ein Alias ist im Wesentlichen ein „Spitzname“ für eine Spalte, die Sie mit einer SELECT
-Anweisung abrufen. Er wird mit der folgenden Syntax angegeben:
Ein Alias beeinflusst nur, wie die Spalte in der Antwort erscheint.
Zum Beispiel könnte anstelle von MAX(time)
die Spalte max_time
genannt werden, wenn Sie diesen Alias zuweisen. Dies macht die Ausgabe lesbarer und klarer.
Swipe to start coding
Deine Aufgabe besteht darin, die längste Zeit bis zur nächsten Station auf jeder Linie zu finden. Dadurch können wir die längste Reisezeit zwischen den Stationen für jede U-Bahn-Linie ermitteln. Verwende dazu die MAX()
Funktion und weise ihr das Alias max_time
zu, indem du die Daten nach der Spalte line_name
gruppierst.
Kurze Anweisungen
- Rufe die Spalte
line_name
und den maximalen Wert der Spaltetime_to_next_station
ab. - Füge den Alias
max_time
für den maximalen Wert hinzu. - Gruppiere die Daten nach der Spalte
line_name
.
Sobald du diese Aufgabe abgeschlossen hast, klicke auf den Button unter dem Code, um deine Lösung zu überprüfen.
Lösung
Danke für Ihr Feedback!