Klauzule SQL GROUP BY je výkonný nástroj pro seskupování a agregaci dat. Poskytuje vynikající způsob, jak seskupovat data na základě specifických kritérií a poté provést akci na výsledných skupinách.
Jedním z běžných případů použití pro GROUP BY je seskupování podle dat. V tomto tutoriálu se naučíme základy práce s klauzulí GROUP BY a probereme, jak ji použít k seskupení dat podle dat v SQL.
POZNÁMKA: Předpokládáme, že máte základní znalosti jazyka SQL. Pro demonstrační účely používáme příklady v tomto kurzu s MySQL 8. Koncepty tohoto kurzu však můžete volně přenést na jiné databázové stroje založené na SQL.
Vzorová tabulka:
Prvním krokem je nastavení základní tabulky a ukázkových dat pro demonstraci. Pokud máte existující tabulku, se kterou chcete pracovat, tuto sekci můžete přeskočit.
Chcete-li vytvořit tabulku, použijte následující dotaz:
Transakce CREATE TABLE (
id int není null primární klíč auto_increment,
datum DATUM,
částka DECIMAL ( 10 , 2 )
) ;
Po vytvoření tabulky vložte ukázková data, jak je znázorněno v následujícím:
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 ) ;
To by mělo přidat náhodná data do tabulky transakcí. Můžeme použít příkaz select k zobrazení výsledné tabulky takto:
vybrat * z transakcí;
Výstupní tabulka:
Jakmile máme připravená data, můžeme přistoupit k dalšímu kroku.
Skupina SQL podle data
Jak můžete hádat, používáme klauzuli GROUP BY k rozdělení dat v dané tabulce na základě konkrétních hodnot. Syntaxe klauzule je následující:
VYBRAT sloupec1, sloupec2, ...FROM název_tabulky
GROUP BY sloupec1, sloupec2, ...;
V předchozí syntaxi používáme klauzuli GROUP BY k určení sloupců, podle kterých chcete data seskupit.
Z předchozí tabulky můžeme použít sloupec data k seskupení dat, jak je znázorněno v následujícím dotazu:
VYBRAT datum , SOUČET ( množství ) tak jako Celková částkaZ transakcí
SKUPINA VYTVOŘENÁ datum ;
Předchozí dotaz provede základní výpočty a sečte celkovou částku za každý den pomocí funkce sum(). Data pak seskupujeme na základě hodnot data. Výsledná tabulka je následující:
Formát Datum
Někdy můžeme potřebovat formátovat datum a zajistit, aby bylo čitelnější. Příklad je následující:
VYBERTE FORMÁT DATA ( datum , '%m/%d/%Y' ) tak jako formatted_date, SUM ( množství ) tak jako Celková částkaZ transakcí
SKUPINA VYTVOŘENÁ datum ;
To by mělo vrátit hodnoty data v zadaném formátu takto:
Rozsah dat filtru SQL
Můžeme také filtrovat sadu výsledků podle časového rozsahu pomocí klauzule WHERE. Příklad je následující:
VYBERTE FORMÁT DATA ( datum , '%m/%d/%Y' ) tak jako formatted_date, SUM ( množství ) tak jako Celková částkaZ transakcí
KDE datum MEZI '2023-01-01' A '2023-01-15'
SKUPINA VYTVOŘENÁ datum ;
Výsledná tabulka je uvedena v následujícím textu:
Tady to máš! Způsob, jak seskupit data z dané tabulky na základě hodnot data.
Závěr
Tento výukový program prozkoumal základy práce s klauzulí GROUP BY v SQL pro třídění dat na základě konkrétních hodnot. To nám umožnilo pokrýt, jak používat klauzuli GROUP BY k rozdělení dat na základě hodnot data.