GROUPING (Transact-SQL)
Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric
Indica se un'espressione della colonna specificata in un elenco GROUP BY è aggregata. GROUPING restituisce 1 per le espressioni aggregate o 0 per le espressioni non aggregate nel set di risultati. È possibile usare GROUPING solo in un elenco di <selezione> SELECT e nelle clausole HAVING e ORDER BY quando GROUP BY è specificato.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
GROUPING ( <column_expression> )
Argomenti
<column_expression>
Colonna o espressione che contiene una colonna in una clausola GROUP BY.
Tipi restituiti
tinyint
Osservazioni:
GROUPING viene utilizzato per distinguere i valori Null restituiti da ROLLUP, CUBE o GROUPING SETS dai valori Null standard. Il risultato NULL restituito da un'operazione ROLLUP, CUBE o GROUPING SETS rappresenta un utilizzo particolare dei valori NULL. Funge infatti da segnaposto di colonna nel set di risultati e corrisponde a "tutti".
Esempi
L'esempio seguente raggruppa SalesQuota
e aggrega gli SaleYTD
importi nel database AdventureWorks2022. La funzione GROUPING
viene applicata alla colonna SalesQuota
.
SELECT SalesQuota, SUM(SalesYTD) 'TotalSalesYTD', GROUPING(SalesQuota) AS 'Grouping'
FROM Sales.SalesPerson
GROUP BY SalesQuota WITH ROLLUP;
GO
Il set di risultati include due valori Null per SalesQuota
. Il primo valore NULL
rappresenta il gruppo di valori Null che derivano dalla colonna della tabella, il secondo valore NULL
è incluso nella riga di riepilogo aggiunta dall'operazione ROLLUP. La riga di riepilogo indica gli importi della colonna TotalSalesYTD
per tutti i gruppi SalesQuota
ed è rappresentata dal valore 1
nella colonna Grouping
.
Il set di risultati è il seguente.
SalesQuota TotalSalesYTD Grouping
------------ ----------------- --------
NULL 1533087.5999 0
250000.00 33461260.59 0
300000.00 9299677.9445 0
NULL 44294026.1344 1
(4 row(s) affected)