Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære GROUP BY-Klausul | Grouping
Videregående SQL

Sveip for å vise menyen

book
GROUP BY-Klausul

Velkommen til kurset Intermediate SQL!

I den første seksjonen skal vi dykke ned i hvordan vi kan gruppere og aggregere data i tabellene våre.

La oss forstå hva "gruppering av data" betyr ved å bruke et enkelt eksempel på en ansatttabell:

Gruppering av data

Vi har en oppgave å finne ut antall ansatte i hver avdeling. For å gjøre dette, vil vi gruppere dataene etter department-kolonnen og bruke aggregering med COUNT(*)-funksjonen.

Slik vil implementeringen se ut:

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

Så, som du kan se, syntaksen for å gruppere data ser slik ut:

sql

Merk

AGG_FUNC betyr aggregeringsfunksjoner som MAX, MIN, COUNT, etc.

Denne syntaksen eksisterer for å finne visse verdier ved hjelp av aggregeringsfunksjoner i spesifikke kolonner.

La oss vurdere et annet eksempel: vi har fått i oppgave å finne avdelingen med den høyeste gjennomsnittlige lønnen.

For å hente slike data, må vi gruppere dataene etter department-kolonnen og deretter bruke AVG()-funksjonen for å beregne gjennomsnittslønnen:

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

I denne delen av seksjonen skal vi jobbe med Montreal Metro system database, som inneholder tabellen metro_travel_time.

Denne tabellen vil inneholde informasjon om stasjonslinjen (line_name), dens navn (station_name), og mengden tid det tar for et tog å reise fra en stasjon til den neste (time_to_next_station).

Her er hvordan denne tabellen ser ut og datavisningen i den:

Som du kan se, er dette ikke en kompleks tabell. La oss tenke på hvor vi kan bruke gruppering her.

Det mest åpenbare alternativet er gruppering etter fargene på metrolinjene. Det betyr at vi kan aggregere dataene, gruppere dem etter fargen på metrolinjen.

Alias

I oppgavene vil du ofte bruke et konsept kalt en alias. Et alias er i hovedsak et "kallenavn" for en kolonne du henter med en SELECT-setning. Det spesifiseres ved å bruke følgende syntaks:

sql

Et alias påvirker bare hvordan kolonnen vises i svaret.

For eksempel, i stedet for MAX(time), kan kolonnen kalles max_time hvis du tildeler det aliaset. Dette gjør utdataene mer lesbare og klare.

Oppgave

Swipe to start coding

Din oppgave er å finne den lengste tiden til neste stasjon på hver linje. Dette vil tillate oss å bestemme den lengste reisetiden mellom stasjoner for hver metrolinje. For å gjøre dette, bruk MAX()-funksjonen og alias det som max_time, og grupper dataene etter line_name-kolonnen.

Kort instruksjon

  • Hent line_name-kolonnen og maksimumsverdien av time_to_next_station-kolonnen.
  • Legg til aliaset max_time for maksimumsverdien.
  • Grupper dataene etter line_name-kolonnen.

Når du har fullført denne oppgaven, klikk på knappen under koden for å sjekke løsningen din.

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 1

Spør AI

expand
ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

book
GROUP BY-Klausul

Velkommen til kurset Intermediate SQL!

I den første seksjonen skal vi dykke ned i hvordan vi kan gruppere og aggregere data i tabellene våre.

La oss forstå hva "gruppering av data" betyr ved å bruke et enkelt eksempel på en ansatttabell:

Gruppering av data

Vi har en oppgave å finne ut antall ansatte i hver avdeling. For å gjøre dette, vil vi gruppere dataene etter department-kolonnen og bruke aggregering med COUNT(*)-funksjonen.

Slik vil implementeringen se ut:

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

Så, som du kan se, syntaksen for å gruppere data ser slik ut:

sql

Merk

AGG_FUNC betyr aggregeringsfunksjoner som MAX, MIN, COUNT, etc.

Denne syntaksen eksisterer for å finne visse verdier ved hjelp av aggregeringsfunksjoner i spesifikke kolonner.

La oss vurdere et annet eksempel: vi har fått i oppgave å finne avdelingen med den høyeste gjennomsnittlige lønnen.

For å hente slike data, må vi gruppere dataene etter department-kolonnen og deretter bruke AVG()-funksjonen for å beregne gjennomsnittslønnen:

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

I denne delen av seksjonen skal vi jobbe med Montreal Metro system database, som inneholder tabellen metro_travel_time.

Denne tabellen vil inneholde informasjon om stasjonslinjen (line_name), dens navn (station_name), og mengden tid det tar for et tog å reise fra en stasjon til den neste (time_to_next_station).

Her er hvordan denne tabellen ser ut og datavisningen i den:

Som du kan se, er dette ikke en kompleks tabell. La oss tenke på hvor vi kan bruke gruppering her.

Det mest åpenbare alternativet er gruppering etter fargene på metrolinjene. Det betyr at vi kan aggregere dataene, gruppere dem etter fargen på metrolinjen.

Alias

I oppgavene vil du ofte bruke et konsept kalt en alias. Et alias er i hovedsak et "kallenavn" for en kolonne du henter med en SELECT-setning. Det spesifiseres ved å bruke følgende syntaks:

sql

Et alias påvirker bare hvordan kolonnen vises i svaret.

For eksempel, i stedet for MAX(time), kan kolonnen kalles max_time hvis du tildeler det aliaset. Dette gjør utdataene mer lesbare og klare.

Oppgave

Swipe to start coding

Din oppgave er å finne den lengste tiden til neste stasjon på hver linje. Dette vil tillate oss å bestemme den lengste reisetiden mellom stasjoner for hver metrolinje. For å gjøre dette, bruk MAX()-funksjonen og alias det som max_time, og grupper dataene etter line_name-kolonnen.

Kort instruksjon

  • Hent line_name-kolonnen og maksimumsverdien av time_to_next_station-kolonnen.
  • Legg til aliaset max_time for maksimumsverdien.
  • Grupper dataene etter line_name-kolonnen.

Når du har fullført denne oppgaven, klikk på knappen under koden for å sjekke løsningen din.

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 1
Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Vi beklager at noe gikk galt. Hva skjedde?
some-alt