Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer GROUP BY-Clausule | Groeperen
Intermediate SQL

bookGROUP BY-Clausule

Welkom bij de Intermediate SQL cursus!

In de eerste sectie wordt behandeld hoe gegevens gegroepeerd en geaggregeerd kunnen worden binnen tabellen.

Het begrip "gegevens groeperen" wordt verduidelijkt aan de hand van een eenvoudig voorbeeld van een employees-tabel:

Gegevens groeperen

De opdracht is om het aantal werknemers per afdeling te bepalen. Hiervoor worden de gegevens gegroepeerd op de kolom department en wordt aggregatie toegepast met de functie COUNT(*).

De implementatie ziet er als volgt uit:

123
SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
copy

Zoals te zien is, ziet de syntaxis voor het groeperen van gegevens er als volgt uit:

SELECT column1, AGG_FUNC(column2)
FROM table
GROUP BY column1
Note
Opmerking

AGG_FUNC betekent aggregatiefuncties zoals MAX, MIN, COUNT, enz.

Deze syntaxis wordt gebruikt om bepaalde waarden te vinden met behulp van aggregatiefuncties in specifieke kolommen.

Beschouw het volgende voorbeeld: de opdracht is om het departement met het hoogste gemiddelde salaris te vinden.

Om dergelijke gegevens op te halen, is het nodig om de gegevens te groeperen op de kolom department en vervolgens de functie AVG() te gebruiken om het gemiddelde salaris te berekenen:

123
SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
copy

In dit gedeelte van de sectie werken we met de Montreal Metro system database, die de metro_travel_time tabel bevat.

Deze tabel bevat informatie over de stationlijn (line_name), de naam ervan (station_name) en de tijdsduur die een trein nodig heeft om van het ene station naar het volgende te reizen (time_to_next_station).

Hier ziet u hoe deze tabel eruitziet en een voorbeeld van de gegevens erin:

Zoals u kunt zien, is dit geen complexe tabel. Laten we nadenken over waar we hier groepering kunnen toepassen.

De meest voor de hand liggende optie is groeperen op de kleuren van metrolijnen. Dit betekent dat we de gegevens kunnen aggregeren door ze te groeperen op de kleur van de metrolijn.

Alias

In de opdrachten maak je vaak gebruik van een concept dat een alias wordt genoemd. Een alias is in feite een "bijnaam" voor een kolom die je ophaalt met een SELECT-instructie. Dit wordt gespecificeerd met de volgende syntaxis:

SELECT column AS alias

Een alias beïnvloedt alleen hoe de kolom in het resultaat wordt weergegeven.

Bijvoorbeeld, in plaats van MAX(time) kan de kolom max_time worden genoemd als je die alias toewijst. Dit maakt de uitvoer leesbaarder en duidelijker.

Taak

Swipe to start coding

Je taak is om de langste tijd tot het volgende station op elke lijn te vinden. Hiermee kunnen we de langste reistijd tussen stations voor elke metrolijn bepalen. Gebruik hiervoor de functie MAX() en geef deze de alias max_time, waarbij je de gegevens groepeert op de kolom line_name.

Korte instructies

  • Haal de kolom line_name en de maximale waarde van de kolom time_to_next_station op uit de tabel metro_travel_time.
  • Voeg de alias max_time toe aan de maximale waarde.
  • Groepeer de gegevens op de kolom line_name.

Oplossing

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 1
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Suggested prompts:

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?

close

bookGROUP BY-Clausule

Veeg om het menu te tonen

Welkom bij de Intermediate SQL cursus!

In de eerste sectie wordt behandeld hoe gegevens gegroepeerd en geaggregeerd kunnen worden binnen tabellen.

Het begrip "gegevens groeperen" wordt verduidelijkt aan de hand van een eenvoudig voorbeeld van een employees-tabel:

Gegevens groeperen

De opdracht is om het aantal werknemers per afdeling te bepalen. Hiervoor worden de gegevens gegroepeerd op de kolom department en wordt aggregatie toegepast met de functie COUNT(*).

De implementatie ziet er als volgt uit:

123
SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
copy

Zoals te zien is, ziet de syntaxis voor het groeperen van gegevens er als volgt uit:

SELECT column1, AGG_FUNC(column2)
FROM table
GROUP BY column1
Note
Opmerking

AGG_FUNC betekent aggregatiefuncties zoals MAX, MIN, COUNT, enz.

Deze syntaxis wordt gebruikt om bepaalde waarden te vinden met behulp van aggregatiefuncties in specifieke kolommen.

Beschouw het volgende voorbeeld: de opdracht is om het departement met het hoogste gemiddelde salaris te vinden.

Om dergelijke gegevens op te halen, is het nodig om de gegevens te groeperen op de kolom department en vervolgens de functie AVG() te gebruiken om het gemiddelde salaris te berekenen:

123
SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
copy

In dit gedeelte van de sectie werken we met de Montreal Metro system database, die de metro_travel_time tabel bevat.

Deze tabel bevat informatie over de stationlijn (line_name), de naam ervan (station_name) en de tijdsduur die een trein nodig heeft om van het ene station naar het volgende te reizen (time_to_next_station).

Hier ziet u hoe deze tabel eruitziet en een voorbeeld van de gegevens erin:

Zoals u kunt zien, is dit geen complexe tabel. Laten we nadenken over waar we hier groepering kunnen toepassen.

De meest voor de hand liggende optie is groeperen op de kleuren van metrolijnen. Dit betekent dat we de gegevens kunnen aggregeren door ze te groeperen op de kleur van de metrolijn.

Alias

In de opdrachten maak je vaak gebruik van een concept dat een alias wordt genoemd. Een alias is in feite een "bijnaam" voor een kolom die je ophaalt met een SELECT-instructie. Dit wordt gespecificeerd met de volgende syntaxis:

SELECT column AS alias

Een alias beïnvloedt alleen hoe de kolom in het resultaat wordt weergegeven.

Bijvoorbeeld, in plaats van MAX(time) kan de kolom max_time worden genoemd als je die alias toewijst. Dit maakt de uitvoer leesbaarder en duidelijker.

Taak

Swipe to start coding

Je taak is om de langste tijd tot het volgende station op elke lijn te vinden. Hiermee kunnen we de langste reistijd tussen stations voor elke metrolijn bepalen. Gebruik hiervoor de functie MAX() en geef deze de alias max_time, waarbij je de gegevens groepeert op de kolom line_name.

Korte instructies

  • Haal de kolom line_name en de maximale waarde van de kolom time_to_next_station op uit de tabel metro_travel_time.
  • Voeg de alias max_time toe aan de maximale waarde.
  • Groepeer de gegevens op de kolom line_name.

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 1
single

single

some-alt