Raggruppa SQL per data

Raggruppa Sql Per Data



La clausola SQL GROUP BY è un potente strumento per raggruppare e aggregare i dati. Fornisce un modo eccellente per raggruppare i dati in base a criteri specifici e quindi eseguire un'azione sui gruppi risultanti.

Un caso d'uso comune per GROUP BY è il raggruppamento per date. In questo tutorial impareremo le basi per lavorare con la clausola GROUP BY e discuteremo come usarla per raggruppare i dati per data in SQL.







NOTA: Partiamo dal presupposto che tu abbia una conoscenza di base di SQL. A scopo dimostrativo, utilizziamo gli esempi di questo tutorial con MySQL 8. Tuttavia, puoi portare liberamente i concetti di questo tutorial su altri motori di database basati su SQL.



Tabella di esempio:

Il primo passaggio consiste nell'impostare una tabella di base e dati di esempio per la dimostrazione. Se disponi di una tabella esistente con cui desideri lavorare, sentiti libero di saltare questa sezione.



Per creare la tabella, utilizzare la seguente query:





CREATE transazioni TABLE (
id int not null auto_increment chiave primaria,
data DATA,
importo DECIMALE ( 10 , 2 )
) ;


Dopo aver creato la tabella, inserisci i dati di esempio come mostrato di seguito:

INSERIRE NELLE transazioni ( data , quantità )
VALORI
( '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 ) ;


Questo dovrebbe aggiungere i dati casuali alla tabella delle transazioni. Possiamo usare l'istruzione select per mostrare la tabella risultante come segue:



Selezionare * dalle transazioni;


Tabella di uscita:


Dopo aver preparato i dati, possiamo procedere al passaggio successivo.

Raggruppa SQL per data

Come puoi intuire, utilizziamo la clausola GROUP BY per partizionare i dati in una determinata tabella in base a valori specifici. La sintassi della clausola è la seguente:

SELEZIONA colonna1, colonna2, ...
FROM nome_tabella
GROUP BY colonna1, colonna2, ...;


Nella sintassi precedente, usiamo la clausola GROUP BY per specificare le colonne in base alle quali vuoi raggruppare i dati.

Dalla tabella precedente, possiamo utilizzare la colonna della data per raggruppare i dati come mostrato nella seguente query:

SELEZIONARE data , SOMMA ( quantità ) COME importo totale
A PARTIRE DAL transazioni
RAGGRUPPA PER data ;


La query precedente esegue i calcoli di base e aggiunge l'importo totale per ogni giorno utilizzando la funzione sum(). Quindi raggruppiamo i dati in base ai valori della data. La tabella risultante è la seguente:

Formato Data

A volte, potrebbe essere necessario formattare la data e renderla più leggibile. Un esempio è il seguente:

SELEZIONA DATA_FORMATO ( data , '%m/%d/%Y' ) COME data_formattata, SOMMA ( quantità ) COME importo totale
A PARTIRE DAL transazioni
RAGGRUPPA PER data ;


Questo dovrebbe restituire i valori della data nel formato specificato come segue:

Intervallo date filtro SQL

Possiamo anche filtrare il set di risultati in base a un intervallo di date utilizzando la clausola WHERE. Un esempio è il seguente:

SELEZIONA DATA_FORMATO ( data , '%m/%d/%Y' ) COME data_formattata, SOMMA ( quantità ) COME importo totale
A PARTIRE DAL transazioni
DOVE data FRA '2023-01-01' E '2023-01-15'
RAGGRUPPA PER data ;


La tabella risultante è mostrata di seguito:


Ecco qua! Un modo per raggruppare i dati da una determinata tabella in base ai valori di data.

Conclusione

Questo tutorial ha esplorato i fondamenti dell'utilizzo della clausola GROUP BY in SQL per ordinare i dati in base a valori specifici. Questo ci ha permesso di spiegare come utilizzare la clausola GROUP BY per dividere i dati in base ai valori di data.