SQL grupiranje po datumu

Sql Grupiranje Po Datumu



SQL klauzula GROUP BY moćan je alat za grupiranje i agregiranje podataka. Omogućuje izvrstan način grupiranja podataka na temelju određenih kriterija i zatim izvođenja radnji na rezultirajućim grupama.

Jedan uobičajeni slučaj upotrebe za GROUP BY je grupiranje po datumima. U ovom vodiču naučit ćemo osnove rada s klauzulom GROUP BY i raspravljati o tome kako je koristiti za grupiranje podataka prema datumima u SQL-u.







BILJEŠKA: Pretpostavljamo da imate osnovno razumijevanje SQL-a. U svrhu demonstracije, koristimo se primjerima u ovom vodiču s MySQL 8. Međutim, možete slobodno prenijeti koncepte ovog vodiča na druge motore baze podataka temeljene na SQL-u.



Uzorak tablice:

Prvi korak je postaviti osnovnu tablicu i uzorke podataka za demonstraciju. Ako već imate tablicu s kojom želite raditi, slobodno preskočite ovaj odjeljak.



Za izradu tablice upotrijebite sljedeći upit:





CREATE TABLE transakcije (
iskaznica int not null auto_increment primarni ključ,
datum DATUM,
iznos DECIMALNO ( 10 , 2 )
) ;


Nakon što stvorite tablicu, umetnite uzorke podataka kao što je prikazano u nastavku:

INSERT INTO transakcije ( datum , iznos )
VRIJEDNOSTI
( '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 sati ) ,
( '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 ) ;


Ovo bi trebalo dodati nasumične podatke u tablicu transakcija. Možemo koristiti naredbu select da prikažemo rezultirajuću tablicu na sljedeći način:



Izaberi * od transakcija;


Izlazna tablica:


Nakon što pripremimo podatke, možemo prijeći na sljedeći korak.

SQL grupiranje po datumu

Kao što možete pretpostaviti, koristimo klauzulu GROUP BY za particioniranje podataka u danoj tablici na temelju specifičnih vrijednosti. Sintaksa klauzule je sljedeća:

SELECT stupac1, stupac2, ...
FROM naziv_tablice
GROUP BY stupac1, stupac2, ...;


U prethodnoj sintaksi koristimo klauzulu GROUP BY za određivanje stupaca prema kojima želite grupirati podatke.

Iz prethodne tablice možemo koristiti stupac datuma za grupiranje podataka kao što je prikazano u sljedećem upitu:

IZABERI datum , SUM ( iznos ) kao ukupni_iznos
IZ transakcija
GRUPIRAJ PO datum ;


Prethodni upit izvodi osnovne izračune i dodaje ukupni iznos za svaki dan pomoću funkcije sum(). Zatim grupiramo podatke na temelju datumskih vrijednosti. Dobivena tablica je sljedeća:

Format datuma

Ponekad ćemo možda morati formatirati datum i učiniti ga čitljivijim. Primjer je sljedeći:

ODABERITE FORMAT DATUMA ( datum , '%m/%d/%Y' ) kao formatirani_datum, SUM ( iznos ) kao ukupni_iznos
IZ transakcija
GRUPIRAJ PO datum ;


Ovo bi trebalo vratiti vrijednosti datuma u navedenom formatu kako slijedi:

Datumski raspon SQL filtra

Također možemo filtrirati skup rezultata prema rasponu datuma pomoću odredbe WHERE. Primjer je sljedeći:

ODABERITE FORMAT DATUMA ( datum , '%m/%d/%Y' ) kao formatirani_datum, SUM ( iznos ) kao ukupni_iznos
IZ transakcija
GDJE datum IZMEĐU '2023-01-01' I '2023-01-15'
GRUPIRAJ PO datum ;


Dobivena tablica prikazana je u nastavku:


Eto ga! Način grupiranja podataka iz zadane tablice na temelju datumskih vrijednosti.

Zaključak

Ovaj vodič istražio je osnove rada s klauzulom GROUP BY u SQL-u za sortiranje podataka na temelju određenih vrijednosti. To nam je omogućilo da pokrijemo kako koristiti klauzulu GROUP BY za dijeljenje podataka na temelju datumskih vrijednosti.