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

Prerequisites
Forutsetninger

Velkommen til kurset Intermediate SQL!

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

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

Gruppering av data

Vi har en oppgave om å 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 ser, syntaksen for å gruppere data ser 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.

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

For å hente 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 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 neste (time_to_next_station).

Her ser du hvordan denne tabellen ser ut og et datainnholdsutdrag fra 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 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

Swipe to start coding

Din oppgave er å finne den lengste tiden til neste stasjon på hver linje. Dette gjør det mulig å 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 maksimumsverdien av kolonnen time_to_next_station fra tabellen metro_travel_time.
  • Legg til aliaset max_time for maksimumsverdien.
  • Grupper dataene etter kolonnen line_name.

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

Suggested prompts:

Can you explain more about how GROUP BY works in SQL?

What are some common aggregate functions I can use with GROUP BY?

How do I use aliases in more complex SQL queries?

close

bookGroup By-setning

Sveip for å vise menyen

Prerequisites
Forutsetninger

Velkommen til kurset Intermediate SQL!

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

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

Gruppering av data

Vi har en oppgave om å 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 ser, syntaksen for å gruppere data ser 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.

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

For å hente 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 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 neste (time_to_next_station).

Her ser du hvordan denne tabellen ser ut og et datainnholdsutdrag fra 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 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

Swipe to start coding

Din oppgave er å finne den lengste tiden til neste stasjon på hver linje. Dette gjør det mulig å 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 maksimumsverdien av kolonnen time_to_next_station fra tabellen metro_travel_time.
  • Legg til aliaset max_time for maksimumsverdien.
  • 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

some-alt