Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Group by-Klausul | Gruppering
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Mellemliggende SQL

bookGroup by-Klausul

Prerequisites
Forudsætninger

Velkommen til Intermediate SQL-kurset!

I det første afsnit undersøger vi, hvordan vi kan gruppere og aggregere data i vores tabeller.

Lad os forstå, hvad "gruppering af data" betyder ved hjælp af et simpelt eksempel med en employees-tabel:

Gruppering af data

Vi har en opgave: find antallet af ansatte i hver afdeling. For at gøre dette grupperer vi dataene efter kolonnen department og anvender aggregering med funktionen COUNT(*).

Her er, hvordan implementeringen vil se ud:

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

Som du kan se, syntaksen for gruppering af data ser således ud:

SELECT column1, AGG_FUNC(column2)
FROM table
GROUP BY column1
Note
Bemærk

AGG_FUNC betyder aggregeringsfunktioner som MAX, MIN, COUNT osv.

Denne syntaks bruges til at finde bestemte værdier ved hjælp af aggregeringsfunktioner i specifikke kolonner.

Lad os se på et andet eksempel: vi har fået til opgave at finde den afdeling med den højeste gennemsnitlige løn.

For at hente sådanne data skal vi gruppere dataene efter kolonnen department og derefter bruge funktionen AVG() til at beregne den gennemsnitlige løn:

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

I denne del af sektionen arbejder vi med Montreal Metro systemdatabasen, som indeholder tabellen metro_travel_time.

Denne tabel indeholder information om stationslinjen (line_name), dens navn (station_name) og den tid det tager for et tog at rejse fra én station til den næste (time_to_next_station).

Her er hvordan denne tabel ser ud samt et dataview:

Som du kan se, er dette ikke en kompleks tabel. Overvej hvor vi kan anvende gruppering her.

Den mest oplagte mulighed er gruppering efter farverne på metrolinjerne. Det betyder, at vi kan aggregere dataene ved at gruppere dem efter metrolinjens farve.

Alias

I opgaverne vil du ofte bruge et koncept kaldet et alias. Et alias er grundlæggende et "kælenavn" for en kolonne, du henter med en SELECT-forespørgsel. Det angives 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 kaldes max_time, hvis du tildeler det alias. Dette gør outputtet mere læsbart og tydeligt.

Opgave

Swipe to start coding

Din opgave er at finde den længste tid til næste station på hver linje. Dette gør det muligt at bestemme den længste rejsetid mellem stationer for hver metrolinje. For at gøre dette skal du bruge funktionen MAX() og give den aliaset max_time, hvor du grupperer dataene efter kolonnen line_name.

Korte instruktioner

  • Hent kolonnen line_name og den maksimale værdi af kolonnen time_to_next_station fra tabellen metro_travel_time.
  • Tilføj aliaset max_time til den maksimale værdi.
  • Gruppér dataene efter kolonnen line_name.

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 1
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

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

Stryg for at vise menuen

Prerequisites
Forudsætninger

Velkommen til Intermediate SQL-kurset!

I det første afsnit undersøger vi, hvordan vi kan gruppere og aggregere data i vores tabeller.

Lad os forstå, hvad "gruppering af data" betyder ved hjælp af et simpelt eksempel med en employees-tabel:

Gruppering af data

Vi har en opgave: find antallet af ansatte i hver afdeling. For at gøre dette grupperer vi dataene efter kolonnen department og anvender aggregering med funktionen COUNT(*).

Her er, hvordan implementeringen vil se ud:

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

Som du kan se, syntaksen for gruppering af data ser således ud:

SELECT column1, AGG_FUNC(column2)
FROM table
GROUP BY column1
Note
Bemærk

AGG_FUNC betyder aggregeringsfunktioner som MAX, MIN, COUNT osv.

Denne syntaks bruges til at finde bestemte værdier ved hjælp af aggregeringsfunktioner i specifikke kolonner.

Lad os se på et andet eksempel: vi har fået til opgave at finde den afdeling med den højeste gennemsnitlige løn.

For at hente sådanne data skal vi gruppere dataene efter kolonnen department og derefter bruge funktionen AVG() til at beregne den gennemsnitlige løn:

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

I denne del af sektionen arbejder vi med Montreal Metro systemdatabasen, som indeholder tabellen metro_travel_time.

Denne tabel indeholder information om stationslinjen (line_name), dens navn (station_name) og den tid det tager for et tog at rejse fra én station til den næste (time_to_next_station).

Her er hvordan denne tabel ser ud samt et dataview:

Som du kan se, er dette ikke en kompleks tabel. Overvej hvor vi kan anvende gruppering her.

Den mest oplagte mulighed er gruppering efter farverne på metrolinjerne. Det betyder, at vi kan aggregere dataene ved at gruppere dem efter metrolinjens farve.

Alias

I opgaverne vil du ofte bruge et koncept kaldet et alias. Et alias er grundlæggende et "kælenavn" for en kolonne, du henter med en SELECT-forespørgsel. Det angives 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 kaldes max_time, hvis du tildeler det alias. Dette gør outputtet mere læsbart og tydeligt.

Opgave

Swipe to start coding

Din opgave er at finde den længste tid til næste station på hver linje. Dette gør det muligt at bestemme den længste rejsetid mellem stationer for hver metrolinje. For at gøre dette skal du bruge funktionen MAX() og give den aliaset max_time, hvor du grupperer dataene efter kolonnen line_name.

Korte instruktioner

  • Hent kolonnen line_name og den maksimale værdi af kolonnen time_to_next_station fra tabellen metro_travel_time.
  • Tilføj aliaset max_time til den maksimale værdi.
  • Gruppér dataene efter kolonnen line_name.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 1
single

single

some-alt