GROUPING (Transact-SQL)
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 utilizzare GROUPING solo in un elenco di <selezione> SELECT e nelle clausole ORDER BY quando GROUP BY è specificato.
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
Nell'esempio seguente vengono raggruppati gli importi della colonna SalesQuota e quindi aggregati quelli della colonna SaleYTD. La funzione GROUPING viene applicata alla colonna SalesQuota.
USE AdventureWorks;
GO
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.
Set di risultati:
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)