SQL Grupper efter dato

Sql Grupper Efter Dato



SQL GROUP BY-sætningen er et kraftfuldt værktøj til at gruppere og aggregere dataene. Det giver en fremragende måde at gruppere data baseret på specifikke kriterier og derefter udføre en handling på de resulterende grupper.

Et almindeligt brugstilfælde for GROUP BY er gruppering efter datoer. I denne øvelse lærer vi det grundlæggende i at arbejde med GROUP BY-sætningen og diskuterer, hvordan man bruger den til at gruppere dataene efter datoer i SQL.







BEMÆRK: Vi forudsætter, at du har en grundlæggende forståelse for SQL. Til demonstrationsformål bruger vi eksemplerne i denne tutorial med MySQL 8. Du kan dog frit overføre begreberne i denne tutorial til de andre SQL-baserede databasemotorer.



Eksempeltabel:

Det første trin er at opsætte en grundlæggende tabel og eksempeldata til demonstration. Hvis du har en eksisterende tabel, som du ønsker at arbejde med, er du velkommen til at springe dette afsnit over.



For at oprette tabellen skal du bruge følgende forespørgsel:





OPRET TABELtransaktioner (
id int ikke null auto_increment primær nøgle,
dato DATO,
beløb DECIMAL ( 10 , 2 )
) ;


Når du har oprettet tabellen, skal du indsætte eksempeldataene som vist i følgende:

INDSÆT I transaktioner ( dato , beløb )
VÆRDIER
( '2023-01-01' , 100,00 ) ,
( '2023-01-02' , 50,00 ) ,
( '2023-01-03' , 75,00 ) ,
( '2023-01-04' , 200,00 ) ,
( '2023-01-05' , 150,00 ) ,
( '2023-01-06' , 175,00 ) ,
( '2023-01-07' , 50,00 ) ,
( '2023-01-08' , 100,00 ) ,
( '2023-01-09' , 25.00 ) ,
( '2023-01-10' , 75,00 ) ,
( '2023-01-11' , 150,00 ) ,
( '2023-01-12' , 200,00 ) ,
( '2023-01-13' , 250,00 ) ,
( '2023-01-14' , 175,00 ) ,
( '2023-01-15' , 150,00 ) ,
( '2023-01-16' , 100,00 ) ,
( '2023-01-17' , 50,00 ) ,
( '2023-01-18' , 75,00 ) ;


Dette bør tilføje de tilfældige data til transaktionstabellen. Vi kan bruge select-sætningen til at vise den resulterende tabel som følger:



Vælg * fra transaktioner;


Outputtabel:


Når vi har forberedt dataene, kan vi gå videre til næste trin.

SQL Grupper efter dato

Som du kan gætte, bruger vi GROUP BY-sætningen til at partitionere dataene i en given tabel baseret på specifikke værdier. Klausulens syntaks er som følger:

VÆLG kolonne1, kolonne2, ...
FRA tabelnavn
GROUP BY kolonne1, kolonne2, ...;


I den foregående syntaks bruger vi GROUP BY-sætningen til at angive de kolonner, som du vil gruppere dataene efter.

Fra den foregående tabel kan vi bruge datokolonnen til at gruppere dataene som vist i følgende forespørgsel:

VÆLG dato , SUM ( beløb ) som total beløb
FRA transaktioner
GRUPPE EFTER dato ;


Den forrige forespørgsel udfører de grundlæggende beregninger og tilføjer det samlede beløb for hver dag ved hjælp af sum()-funktionen. Vi grupperer derefter dataene baseret på datoværdierne. Den resulterende tabel er som følger:

Formater dato

Nogle gange skal vi muligvis formatere datoen og gøre den mere læsbar. Et eksempel er som følger:

VÆLG DATE_FORMAT ( dato , '%m/%d/%Y' ) som formateret_dato, SUM ( beløb ) som total beløb
FRA transaktioner
GRUPPE EFTER dato ;


Dette skulle returnere datoværdierne i det angivne format som følger:

Datointerval for SQL-filter

Vi kan også filtrere det indstillede resultat efter et datointerval ved hjælp af WHERE-sætningen. Et eksempel er som følger:

VÆLG DATE_FORMAT ( dato , '%m/%d/%Y' ) som formateret_dato, SUM ( beløb ) som total beløb
FRA transaktioner
HVOR dato MELLEM '2023-01-01' OG '2023-01-15'
GRUPPE EFTER dato ;


Den resulterende tabel er vist i følgende:


Der har du det! En måde at gruppere data fra en given tabel baseret på datoværdier.

Konklusion

Denne øvelse udforskede det grundlæggende i at arbejde med GROUP BY-sætningen i SQL for at sortere dataene baseret på specifikke værdier. Dette gjorde det muligt for os at dække, hvordan man bruger GROUP BY-sætningen til at opdele dataene baseret på datoværdier.