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
Seksjon 1. Kapittel 1
single

single

Group By-setning

Sveip for å vise menyen

Prerequisites
Forutsetninger

Velkommen til kurset Intermediate SQL!

I den første seksjonen ser du nærmere på hvordan du kan gruppere og aggregere data i tabellene dine.

Her er hva 'gruppering av data' betyr, ved hjelp av et enkelt eksempel med en employees-tabell:

Gruppering av data

Oppgaven er å finne ut antall ansatte i hver avdeling. For å gjøre dette, grupperes dataene etter kolonnen department og det brukes aggregering med funksjonen COUNT(*).

Slik vil implementeringen se ut:

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

Som du ser, ser syntaksen for gruppering av data slik ut:

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

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

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

Her er et annet eksempel: du har fått i oppgave å finne avdelingen med høyest gjennomsnittslønn.

For å hente ut slike data må du 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

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

Denne tabellen inneholder informasjon om stasjonslinje (line_name), 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 datavisuelt eksempel:

Som du ser, er dette ikke en kompleks tabell. Tenk over 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 etter fargen på metrolinjen.

Alias

I oppgavene vil du ofte bruke et konsept som kalles alias. Et alias er i hovedsak 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

Sveip for å begynne å kode

Din oppgave er å finne den lengste tiden til neste stasjon på hver linje. Dette vil hjelpe med å fastslå den lengste reisetiden 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 fra tabellen metro_travel_time.
  • Legg til aliaset max_time for den maksimale verdien.
  • Grupper dataene etter kolonnen line_name.

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
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

some-alt