GROUP BY (SQL)
Nel linguaggio SQL, un'istruzione GROUP BY
indica che la selezione SELECT
deve partizionare le righe del risultato in gruppi, in funzione del loro valore in una o più colonne. L'istruzione GROUP BY
si riferisce alle colonne e tipicamente è usata per sintitizzare i dati in una qualche funzione aggregata per ogni gruppo.[1][2]
Il risultato di una query avente l'istruzione GROUP BY
contiene una riga per ogni grupo. Ciò implica la presenza di vincoli sulle colonne che possono comparire nella SELECT
. Come regola generale, la SELECT
può contenere solo colonne con un valore univoco per gruppo (i dati oggetto di selezione da parte della SELECT
possono anche contenere valori ripetuti e in particolare nulli, ma non i valori delle colonne rispetto a cui si ordina il risultato).[3]
Esempi
Restituisce l'elenco dei DepartmentID con la relativa somma delle vendite a partire da gennaio 2000:
SELECT DeptID, SUM(SaleAmount) FROM Sales
WHERE SaleDate = '01-Jan-2000'
GROUP BY DeptID
Restituisce i dati della tabella pivot di esempio che risponde alla domanda: "Quante unità abbiamo venduto in ogni regione per ogni data di spedizione?":
SELECT Region, Ship_Date, SUM(Units) AS Sum_of_Units
FROM FlatData
GROUP BY Region, Ship_Date
Le più comuni funzioni di aggregazione sono:
- Conteggio (espressione) - Quantità di record corrispondenti (per gruppo)
- Somma (espressione) - Somma dei valori dati (per gruppo)
- Min (espressione) - Minimo dei valori dati (per gruppo)
- Max (espressione) - Massimo dei valori dati (per gruppo)
- Avg (espressione) - Media dei valori dati (per gruppo)
Note
- ^ SQL GROUP BY Statement, su w3schools.com.
- ^ (EN) shkale-msft, GROUP BY (Transact-SQL) - SQL Server, su docs.microsoft.com.
- ^ (EN) SQL Grouping and Aggregation, su databaselecture.com.