Skupina SQL podľa dátumu

Skupina Sql Podla Datumu



Klauzula SQL GROUP BY je výkonný nástroj na zoskupovanie a agregáciu údajov. Poskytuje vynikajúci spôsob, ako zoskupiť údaje na základe špecifických kritérií a potom vykonať akciu na výsledných skupinách.

Jedným z bežných prípadov použitia pre GROUP BY je zoskupovanie podľa dátumov. V tomto návode sa naučíme základy práce s klauzulou GROUP BY a prediskutujeme, ako ju použiť na zoskupenie údajov podľa dátumov v SQL.







POZNÁMKA: Predpokladáme, že máte základné znalosti jazyka SQL. Na demonštračné účely používame príklady v tomto návode s MySQL 8. Koncepty tohto návodu však môžete voľne preniesť na iné databázové stroje založené na SQL.



Vzorová tabuľka:

Prvým krokom je nastavenie základnej tabuľky a vzorových údajov na demonštráciu. Ak máte existujúcu tabuľku, s ktorou chcete pracovať, pokojne túto časť preskočte.



Na vytvorenie tabuľky použite nasledujúci dotaz:





Transakcie CREATE TABLE (
id int nie je null primárny kľúč auto_increment,
dátum DÁTUM,
čiastka DECIMAL ( 10 , 2 )
) ;


Po vytvorení tabuľky vložte vzorové údaje, ako je znázornené v nasledujúcom texte:

VLOŽIŤ DO transakcií ( dátum , suma )
HODNOTY
( '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 ) ;


Toto by malo pridať náhodné údaje do tabuľky transakcií. Pomocou príkazu select môžeme výslednú tabuľku zobraziť takto:



vyberte * z transakcií;


Výstupná tabuľka:


Keď máme dáta pripravené, môžeme pristúpiť k ďalšiemu kroku.

Skupina SQL podľa dátumu

Ako môžete hádať, klauzulu GROUP BY používame na rozdelenie údajov v danej tabuľke na základe konkrétnych hodnôt. Syntax klauzuly je nasledovná:

VYBERTE stĺpec1, stĺpec2, ...
FROM table_name
GROUP BY stĺpec1, stĺpec2, ...;


V predchádzajúcej syntaxi používame klauzulu GROUP BY na určenie stĺpcov, podľa ktorých chcete zoskupiť údaje.

Z predchádzajúcej tabuľky môžeme použiť stĺpec dátumu na zoskupenie údajov, ako je znázornené v nasledujúcom dotaze:

VYBRAŤ dátum , SÚČET ( čiastka ) ako celková_suma
Z transakcií
GROUP BY dátum ;


Predchádzajúci dotaz vykoná základné výpočty a pridá celkovú sumu za každý deň pomocou funkcie sum(). Údaje potom zoskupíme na základe hodnôt dátumu. Výsledná tabuľka je nasledovná:

Formátovať dátum

Niekedy môže byť potrebné formátovať dátum a urobiť ho čitateľnejším. Príklad je nasledujúci:

SELECT DATE_FORMAT ( dátum , '%m/%d/%Y' ) ako formatted_date, SUM ( čiastka ) ako celková_suma
Z transakcií
GROUP BY dátum ;


To by malo vrátiť hodnoty dátumu v zadanom formáte takto:

Rozsah dátumov filtra SQL

Množinu výsledkov môžeme filtrovať aj podľa rozsahu dátumov pomocou klauzuly WHERE. Príklad je nasledujúci:

SELECT DATE_FORMAT ( dátum , '%m/%d/%Y' ) ako formatted_date, SUM ( čiastka ) ako celková_suma
Z transakcií
KDE dátum MEDZI '2023-01-01' A '2023-01-15'
GROUP BY dátum ;


Výsledná tabuľka je znázornená nasledovne:


Tu to máte! Spôsob zoskupenia údajov z danej tabuľky na základe hodnôt dátumu.

Záver

Tento tutoriál skúmal základy práce s klauzulou GROUP BY v SQL na triedenie údajov na základe konkrétnych hodnôt. To nám umožnilo pokryť, ako používať klauzulu GROUP BY na rozdelenie údajov na základe hodnôt dátumu.