SQL Grupper etter dato

Sql Grupper Etter Dato



SQL GROUP BY-klausulen er et kraftig verktøy for å gruppere og aggregere dataene. Det gir en utmerket måte å gruppere data basert på spesifikke kriterier og deretter utføre en handling på de resulterende gruppene.

Et vanlig brukstilfelle for GROUP BY er gruppering etter datoer. I denne opplæringen vil vi lære det grunnleggende om å jobbe med GROUP BY-klausulen og diskutere hvordan du bruker den til å gruppere dataene etter datoer i SQL.







MERK: Vi forutsetter at du har en grunnleggende forståelse av SQL. For demonstrasjonsformål bruker vi eksemplene i denne opplæringen med MySQL 8. Du kan imidlertid fritt overføre konseptene til denne opplæringen til de andre SQL-baserte databasemotorene.



Eksempeltabell:

Det første trinnet er å sette opp en grunnleggende tabell og eksempeldata for demonstrasjon. Hvis du har en eksisterende tabell som du ønsker å jobbe med, kan du gjerne hoppe over denne delen.



For å lage tabellen, bruk følgende spørring:





OPPRETT TABELL-transaksjoner (
id int ikke null auto_increment primærnøkkel,
Dato DATO,
beløp DESIMAL ( 10 , 2 )
) ;


Når du har opprettet tabellen, setter du inn eksempeldataene som vist i følgende:

SETTE INN I transaksjoner ( Dato , beløp )
VERDIER
( '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 legge til tilfeldige data til transaksjonstabellen. Vi kan bruke select-setningen for å vise den resulterende tabellen som følger:



plukke ut * fra transaksjoner;


Utdatatabell:


Når vi har forberedt dataene, kan vi gå videre til neste trinn.

SQL Grupper etter dato

Som du kan gjette, bruker vi GROUP BY-klausulen til å partisjonere dataene i en gitt tabell basert på spesifikke verdier. Klausulens syntaks er som følger:

VELG kolonne1, kolonne2, ...
FRA tabellnavn
GROUP BY kolonne1, kolonne2, ...;


I forrige syntaks bruker vi GROUP BY-leddet for å spesifisere kolonnene du vil gruppere dataene etter.

Fra den forrige tabellen kan vi bruke datokolonnen til å gruppere dataene som vist i følgende spørring:

PLUKKE UT Dato , SUM ( beløp ) som totale mengden
FRA transaksjoner
GRUPPE AV Dato ;


Den forrige spørringen utfører de grunnleggende beregningene og legger til totalbeløpet for hver dag ved å bruke sum()-funksjonen. Vi grupperer deretter dataene basert på datoverdiene. Den resulterende tabellen er som følger:

Formater dato

Noen ganger må vi kanskje formatere datoen og gjøre den mer lesbar. Et eksempel er som følger:

VELG DATE_FORMAT ( Dato , '%m/%d/%Y' ) som formatert_dato, SUM ( beløp ) som totale mengden
FRA transaksjoner
GRUPPE AV Dato ;


Dette skal returnere datoverdiene i det angitte formatet som følger:

Datoperiode for SQL-filter

Vi kan også filtrere resultatet satt etter en datoperiode ved å bruke WHERE-leddet. Et eksempel er som følger:

VELG DATE_FORMAT ( Dato , '%m/%d/%Y' ) som formatert_dato, SUM ( beløp ) som totale mengden
FRA transaksjoner
HVOR Dato MELLOM '2023-01-01' OG '2023-01-15'
GRUPPE AV Dato ;


Den resulterende tabellen er vist i følgende:


Der har du det! En måte å gruppere dataene fra en gitt tabell basert på datoverdier.

Konklusjon

Denne opplæringen utforsket det grunnleggende om å jobbe med GROUP BY-klausulen i SQL for å sortere dataene basert på spesifikke verdier. Dette tillot oss å dekke hvordan vi bruker GROUP BY-klausulen for å dele dataene basert på datoverdier.