Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Group by-Klausel | Gruppierung
Fortgeschrittene SQL

book
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
123
SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
copy

Wie Sie sehen können, sieht die Syntax zum Gruppieren von Daten so aus:

sql
SELECT column1, AGG_FUNC(column2)
FROM table
GROUP BY column1

Hinweis

AGG_FUNC steht für Aggregatfunktionen wie MAX, 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
123
SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
copy

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:

sql
SELECT column AS alias

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.

Aufgabe

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 Spalte time_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

SELECT line_name, MAX(time_to_next_station) AS max_time
FROM metro_travel_time
GROUP BY line_name

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 1

Query ResultQuery Result
No query executed yet...

Fragen Sie AI

expand
ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

We use cookies to make your experience better!
some-alt