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:
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 totaleA 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 totaleA 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 totaleA 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.