Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära GROUP BY-Klausul | Gruppering
Intermediär SQL

Svep för att visa menyn

book
GROUP BY-Klausul

Välkommen till kursen Intermediate SQL!

I den första sektionen dyker vi in i hur vi kan gruppera och aggregera data inom våra tabeller.

Låt oss förstå vad "gruppera data" betyder med hjälp av ett enkelt exempel på en anställdastabell:

Gruppera Data

Vi har en uppgift att ta reda på antalet anställda i varje avdelning. För att göra detta kommer vi att gruppera data efter department-kolumnen och använda aggregering med COUNT(*)-funktionen.

Så här kommer implementeringen att se ut:

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

Så, som du kan se, ser syntaxen för att gruppera data ut så här:

sql

Note

AGG_FUNC means aggregate functions like MAX, MIN, COUNT, etc.

Denna syntax finns för att hitta vissa värden med hjälp av aggregeringsfunktioner i specifika kolumner.

Låt oss överväga ett annat exempel: vi har fått i uppdrag att hitta avdelningen med den högsta genomsnittliga lönen.

För att hämta sådan data behöver vi gruppera data efter department-kolumnen och sedan använda AVG()-funktionen för att beräkna den genomsnittliga lönen:

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

I den här delen av avsnittet kommer vi att arbeta med Montreal Metro-systemets databas, som innehåller tabellen metro_travel_time.

Denna tabell kommer att innehålla information om stationslinjen(line_name), dess namn(station_name) och mängden tid det tar för ett tåg att resa från en station till nästa(time_to_next_station).

Här är hur denna tabell ser ut och datapreviewen i den:

Som du kan se är detta inte en komplex tabell. Låt oss tänka på var vi kan använda gruppering här.

Det mest uppenbara alternativet är gruppering efter färgerna på metrolinjerna. Det betyder att vi kan aggregera data, gruppera den efter färgen på metrolinjen.

Alias

I uppgifterna kommer du ofta att använda ett koncept som kallas för alias. Ett alias är i princip ett "smeknamn" för en kolumn du hämtar med ett SELECT-uttalande. Det anges med följande syntax:

sql

Ett alias påverkar endast hur kolumnen visas i svaret.

Till exempel, istället för MAX(time), kan kolumnen kallas max_time om du tilldelar det aliaset. Detta gör utdata mer läsbar och tydlig.

Uppgift

Swipe to start coding

Din uppgift är att hitta den längsta tiden till nästa station på varje linje. Detta kommer att låta oss bestämma den längsta resetiden mellan stationer för varje tunnelbanelinje. För att göra detta, använd MAX()-funktionen och alias den som max_time, gruppera data efter kolumnen line_name.

Kortfattade instruktioner

  • Hämta kolumnen line_name och det maximala värdet av kolumnen time_to_next_station.
  • Lägg till aliaset max_time för det maximala värdet.
  • Gruppera data efter kolumnen line_name.

När du har slutfört denna uppgift, klicka på knappen under koden för att kontrollera din lösning.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 1

Fråga AI

expand
ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

book
GROUP BY-Klausul

Välkommen till kursen Intermediate SQL!

I den första sektionen dyker vi in i hur vi kan gruppera och aggregera data inom våra tabeller.

Låt oss förstå vad "gruppera data" betyder med hjälp av ett enkelt exempel på en anställdastabell:

Gruppera Data

Vi har en uppgift att ta reda på antalet anställda i varje avdelning. För att göra detta kommer vi att gruppera data efter department-kolumnen och använda aggregering med COUNT(*)-funktionen.

Så här kommer implementeringen att se ut:

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

Så, som du kan se, ser syntaxen för att gruppera data ut så här:

sql

Note

AGG_FUNC means aggregate functions like MAX, MIN, COUNT, etc.

Denna syntax finns för att hitta vissa värden med hjälp av aggregeringsfunktioner i specifika kolumner.

Låt oss överväga ett annat exempel: vi har fått i uppdrag att hitta avdelningen med den högsta genomsnittliga lönen.

För att hämta sådan data behöver vi gruppera data efter department-kolumnen och sedan använda AVG()-funktionen för att beräkna den genomsnittliga lönen:

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

I den här delen av avsnittet kommer vi att arbeta med Montreal Metro-systemets databas, som innehåller tabellen metro_travel_time.

Denna tabell kommer att innehålla information om stationslinjen(line_name), dess namn(station_name) och mängden tid det tar för ett tåg att resa från en station till nästa(time_to_next_station).

Här är hur denna tabell ser ut och datapreviewen i den:

Som du kan se är detta inte en komplex tabell. Låt oss tänka på var vi kan använda gruppering här.

Det mest uppenbara alternativet är gruppering efter färgerna på metrolinjerna. Det betyder att vi kan aggregera data, gruppera den efter färgen på metrolinjen.

Alias

I uppgifterna kommer du ofta att använda ett koncept som kallas för alias. Ett alias är i princip ett "smeknamn" för en kolumn du hämtar med ett SELECT-uttalande. Det anges med följande syntax:

sql

Ett alias påverkar endast hur kolumnen visas i svaret.

Till exempel, istället för MAX(time), kan kolumnen kallas max_time om du tilldelar det aliaset. Detta gör utdata mer läsbar och tydlig.

Uppgift

Swipe to start coding

Din uppgift är att hitta den längsta tiden till nästa station på varje linje. Detta kommer att låta oss bestämma den längsta resetiden mellan stationer för varje tunnelbanelinje. För att göra detta, använd MAX()-funktionen och alias den som max_time, gruppera data efter kolumnen line_name.

Kortfattade instruktioner

  • Hämta kolumnen line_name och det maximala värdet av kolumnen time_to_next_station.
  • Lägg till aliaset max_time för det maximala värdet.
  • Gruppera data efter kolumnen line_name.

När du har slutfört denna uppgift, klicka på knappen under koden för att kontrollera din lösning.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 1
Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Vi beklagar att något gick fel. Vad hände?
some-alt