Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære GROUP BY Clause | Gruppering
Mellemliggende SQL

Stryg for at vise menuen

book
GROUP BY Clause

Velkommen til Intermediate SQL kurset!

I den første sektion dykker vi ned i, hvordan vi kan gruppere og aggregere data inden for vores tabeller.

Lad os forstå, hvad "gruppering af data" betyder ved hjælp af et simpelt eksempel på en medarbejdertabell:

Gruppering af Data

Vi har en opgave at finde ud af antallet af medarbejdere i hver afdeling. For at gøre dette, vil vi gruppere dataene efter department kolonnen og bruge aggregering med COUNT(*) funktionen.

Her er hvordan implementeringen vil se ud:

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

Så, som du kan se, syntaksen for gruppering af data ser sådan ud:

sql

Bemærk

AGG_FUNC betyder aggregeringsfunktioner som MAX, MIN, COUNT, osv.

Denne syntaks eksisterer for at finde bestemte værdier ved hjælp af aggregeringsfunktioner i specifikke kolonner.

Lad os overveje et andet eksempel: vi har fået til opgave at finde afdelingen med den højeste gennemsnitlige løn.

For at hente sådanne data skal vi gruppere dataene efter department kolonnen og derefter bruge AVG() funktionen til at beregne den gennemsnitlige løn:

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

I denne del af sektionen vil vi arbejde med Montreal Metro system database, som indeholder metro_travel_time tabellen.

Denne tabel vil indeholde information om stationens linje(line_name), dens navn(station_name), og den tid det tager for et tog at rejse fra en station til den næste(time_to_next_station).

Her er hvordan denne tabel ser ud og datavisningen i den:

Som du kan se, er dette ikke en kompleks tabel. Lad os tænke over, hvor vi kan bruge gruppering her.

Den mest oplagte mulighed er gruppering efter farverne på metrolinjerne. Det betyder, at vi kan aggregere dataene ved at gruppere dem efter farven på metrolinjen.

Alias

I opgaverne vil du ofte bruge et koncept kaldet en alias. Et alias er i det væsentlige et "kælenavn" for en kolonne, du henter med en SELECT-sætning. Det specificeres ved hjælp af følgende syntaks:

sql

Et alias påvirker kun, hvordan kolonnen vises i svaret.

For eksempel, i stedet for MAX(time), kunne kolonnen kaldes max_time, hvis du tildeler det alias. Dette gør outputtet mere læsbart og klart.

Opgave

Swipe to start coding

Din opgave er at finde den længste tid til næste station på hver linje. Dette vil give os mulighed for at bestemme den længste rejsetid mellem stationer for hver metrolinje. For at gøre dette skal du bruge MAX()-funktionen og alias det som max_time, gruppere dataene efter line_name-kolonnen.

Kort vejledning

  • Hent line_name-kolonnen og den maksimale værdi af time_to_next_station-kolonnen.
  • Tilføj aliaset max_time for den maksimale værdi.
  • Gruppér dataene efter line_name-kolonnen.

Når du har fuldført denne opgave, skal du klikke på knappen under koden for at tjekke din løsning.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 1

Spørg AI

expand
ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

book
GROUP BY Clause

Velkommen til Intermediate SQL kurset!

I den første sektion dykker vi ned i, hvordan vi kan gruppere og aggregere data inden for vores tabeller.

Lad os forstå, hvad "gruppering af data" betyder ved hjælp af et simpelt eksempel på en medarbejdertabell:

Gruppering af Data

Vi har en opgave at finde ud af antallet af medarbejdere i hver afdeling. For at gøre dette, vil vi gruppere dataene efter department kolonnen og bruge aggregering med COUNT(*) funktionen.

Her er hvordan implementeringen vil se ud:

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

Så, som du kan se, syntaksen for gruppering af data ser sådan ud:

sql

Bemærk

AGG_FUNC betyder aggregeringsfunktioner som MAX, MIN, COUNT, osv.

Denne syntaks eksisterer for at finde bestemte værdier ved hjælp af aggregeringsfunktioner i specifikke kolonner.

Lad os overveje et andet eksempel: vi har fået til opgave at finde afdelingen med den højeste gennemsnitlige løn.

For at hente sådanne data skal vi gruppere dataene efter department kolonnen og derefter bruge AVG() funktionen til at beregne den gennemsnitlige løn:

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

I denne del af sektionen vil vi arbejde med Montreal Metro system database, som indeholder metro_travel_time tabellen.

Denne tabel vil indeholde information om stationens linje(line_name), dens navn(station_name), og den tid det tager for et tog at rejse fra en station til den næste(time_to_next_station).

Her er hvordan denne tabel ser ud og datavisningen i den:

Som du kan se, er dette ikke en kompleks tabel. Lad os tænke over, hvor vi kan bruge gruppering her.

Den mest oplagte mulighed er gruppering efter farverne på metrolinjerne. Det betyder, at vi kan aggregere dataene ved at gruppere dem efter farven på metrolinjen.

Alias

I opgaverne vil du ofte bruge et koncept kaldet en alias. Et alias er i det væsentlige et "kælenavn" for en kolonne, du henter med en SELECT-sætning. Det specificeres ved hjælp af følgende syntaks:

sql

Et alias påvirker kun, hvordan kolonnen vises i svaret.

For eksempel, i stedet for MAX(time), kunne kolonnen kaldes max_time, hvis du tildeler det alias. Dette gør outputtet mere læsbart og klart.

Opgave

Swipe to start coding

Din opgave er at finde den længste tid til næste station på hver linje. Dette vil give os mulighed for at bestemme den længste rejsetid mellem stationer for hver metrolinje. For at gøre dette skal du bruge MAX()-funktionen og alias det som max_time, gruppere dataene efter line_name-kolonnen.

Kort vejledning

  • Hent line_name-kolonnen og den maksimale værdi af time_to_next_station-kolonnen.
  • Tilføj aliaset max_time for den maksimale værdi.
  • Gruppér dataene efter line_name-kolonnen.

Når du har fuldført denne opgave, skal du klikke på knappen under koden for at tjekke din løsning.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 1
Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Vi beklager, at noget gik galt. Hvad skete der?
some-alt