Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Group By-setning | Gruppering
Videregående SQL

bookGroup By-setning

Velkommen til Intermediate SQL-kurset!

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

La oss forstå hva "gruppering av data" betyr ved å bruke et enkelt eksempel med en employees-tabell:

Gruppering av data

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

Slik vil implementeringen se ut:

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

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

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

Merk

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

Denne syntaksen brukes for å finne bestemte verdier ved hjelp av aggregeringsfunksjoner i spesifikke kolonner.

La oss se på et annet eksempel: vi har fått i oppgave å finne avdelingen med høyest gjennomsnittslønn.

For å hente ut slike data må vi gruppere dataene etter kolonnen department og deretter bruke funksjonen AVG() 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 arbeide med Montreal Metro-systemets database, som inneholder tabellen metro_travel_time.

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

Her ser du hvordan denne tabellen ser ut og et datainnholdseksempel i den:

Som du ser, er dette ikke en kompleks tabell. La oss vurdere hvor vi kan bruke gruppering her.

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

Alias

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

SELECT column AS alias

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

For eksempel, i stedet for MAX(time), kan kolonnen kalles max_time hvis du gir den det aliaset. Dette gjør resultatet mer lesbart og tydelig.

Oppgave

Swipe to start coding

Din oppgave er å finne den lengste tiden til neste stasjon på hver linje. Dette gjør det mulig å fastslå lengste reisetid mellom stasjoner for hver metrolinje. For å gjøre dette, bruk funksjonen MAX() og gi den aliaset max_time, og grupper dataene etter kolonnen line_name.

Korte instruksjoner

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

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

Løsning

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 1
single

single

Spør AI

expand

Spør AI

ChatGPT

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

close

Awesome!

Completion rate improved to 4

bookGroup By-setning

Sveip for å vise menyen

Velkommen til Intermediate SQL-kurset!

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

La oss forstå hva "gruppering av data" betyr ved å bruke et enkelt eksempel med en employees-tabell:

Gruppering av data

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

Slik vil implementeringen se ut:

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

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

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

Merk

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

Denne syntaksen brukes for å finne bestemte verdier ved hjelp av aggregeringsfunksjoner i spesifikke kolonner.

La oss se på et annet eksempel: vi har fått i oppgave å finne avdelingen med høyest gjennomsnittslønn.

For å hente ut slike data må vi gruppere dataene etter kolonnen department og deretter bruke funksjonen AVG() 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 arbeide med Montreal Metro-systemets database, som inneholder tabellen metro_travel_time.

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

Her ser du hvordan denne tabellen ser ut og et datainnholdseksempel i den:

Som du ser, er dette ikke en kompleks tabell. La oss vurdere hvor vi kan bruke gruppering her.

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

Alias

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

SELECT column AS alias

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

For eksempel, i stedet for MAX(time), kan kolonnen kalles max_time hvis du gir den det aliaset. Dette gjør resultatet mer lesbart og tydelig.

Oppgave

Swipe to start coding

Din oppgave er å finne den lengste tiden til neste stasjon på hver linje. Dette gjør det mulig å fastslå lengste reisetid mellom stasjoner for hver metrolinje. For å gjøre dette, bruk funksjonen MAX() og gi den aliaset max_time, og grupper dataene etter kolonnen line_name.

Korte instruksjoner

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

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!

close

Awesome!

Completion rate improved to 4
Seksjon 1. Kapittel 1
single

single

some-alt