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 sintetizzare 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 gruppo. 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]

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:

  • COUNT(espressione) - Quantità di record corrispondenti (per gruppo)
  • SUM(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)
  1. ^ SQL GROUP BY Statement, su w3schools.com.
  2. ^ (EN) hkale-msft, GROUP BY (Transact-SQL) - SQL Server, su docs.microsoft.com.
  3. ^ (EN) SQL Grouping and Aggregation, su databaselecture.com.

Voci correlate

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica