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.

Icona di collegamento a un argomentoConvenzioni della 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

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)