SQL Gruppera efter datum

Sql Gruppera Efter Datum



SQL GROUP BY-satsen är ett kraftfullt verktyg för att gruppera och aggregera data. Det ger ett utmärkt sätt att gruppera data baserat på specifika kriterier och sedan utföra en åtgärd på de resulterande grupperna.

Ett vanligt användningsfall för GROUP BY är gruppering efter datum. I den här handledningen kommer vi att lära oss grunderna för att arbeta med GROUP BY-satsen och diskutera hur man använder den för att gruppera data efter datum i SQL.







NOTERA: Vi förutsätter att du har en grundläggande förståelse för SQL. I demonstrationssyfte använder vi exemplen i denna handledning med MySQL 8. Du kan dock fritt överföra begreppen i denna handledning till andra SQL-baserade databasmotorer.



Exempeltabell:

Det första steget är att skapa en grundläggande tabell och exempeldata för demonstration. Om du har en befintlig tabell som du vill arbeta med, hoppa gärna över det här avsnittet.



För att skapa tabellen, använd följande fråga:





SKAPA TABELL transaktioner (
id int not null auto_increment primärnyckel,
datum DATUM,
belopp DECIMAL ( 10 , 2 )
) ;


När du har skapat tabellen, infoga exempeldata enligt följande:

INFOGA I transaktioner ( datum , belopp )
VÄRDEN
( '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 ) ;


Detta bör lägga till slumpmässiga data till transaktionstabellen. Vi kan använda select-satsen för att visa den resulterande tabellen enligt följande:



Välj * från transaktioner;


Utdatatabell:


När vi har förberett data kan vi gå vidare till nästa steg.

SQL Gruppera efter datum

Som du kan gissa använder vi GROUP BY-satsen för att partitionera data i en given tabell baserat på specifika värden. Klausulens syntax är som följer:

VÄLJ kolumn1, kolumn2, ...
FRÅN tabellnamn
GROUP BY kolumn1, kolumn2, ...;


I föregående syntax använder vi GROUP BY-satsen för att specificera kolumnerna som du vill gruppera data efter.

Från föregående tabell kan vi använda datumkolumnen för att gruppera data som visas i följande fråga:

VÄLJ datum , SUMMA ( belopp ) som totala summan
FRÅN transaktioner
GRUPP AV datum ;


Den föregående frågan utför de grundläggande beräkningarna och lägger till det totala beloppet för varje dag med hjälp av sum()-funktionen. Vi grupperar sedan data baserat på datumvärdena. Den resulterande tabellen är som följer:

Formatera datum

Ibland kan vi behöva formatera datumet och göra det mer läsbart. Ett exempel är följande:

VÄLJ DATUM_FORMAT ( datum , '%m/%d/%Y' ) som formaterad_datum, SUM ( belopp ) som totala summan
FRÅN transaktioner
GRUPP AV datum ;


Detta bör returnera datumvärdena i det angivna formatet enligt följande:

SQL-filter datumintervall

Vi kan också filtrera resultatet efter ett datumintervall med hjälp av WHERE-satsen. Ett exempel är följande:

VÄLJ DATUM_FORMAT ( datum , '%m/%d/%Y' ) som formaterad_datum, SUM ( belopp ) som totala summan
FRÅN transaktioner
VAR datum MELLAN '2023-01-01' OCH '2023-01-15'
GRUPP AV datum ;


Den resulterande tabellen visas i följande:


Där har du det! Ett sätt att gruppera data från en given tabell baserat på datumvärden.

Slutsats

Denna handledning utforskade grunderna för att arbeta med GROUP BY-satsen i SQL för att sortera data baserat på specifika värden. Detta gjorde det möjligt för oss att täcka hur man använder GROUP BY-satsen för att dela upp data baserat på datumvärden.