single
Group By-setning
Sveip for å vise menyen
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:
123SELECT 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
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:
123SELECT 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.
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_nameog den maksimale verdien av kolonnentime_to_next_stationfra tabellenmetro_travel_time. - Legg til aliaset
max_timefor den maksimale verdien. - Grupper dataene etter kolonnen
line_name.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår