GROUPING (Transact-SQL)

Funzione di aggregazione che consente di includere nell'output una colonna aggiuntiva con valore 1 se la riga viene aggiunta tramite l'operatore CUBE o ROLLUP e con valore 0 se la riga non è stata aggiunta tramite questi operatori.

Il raggruppamento è consentito solo nell'elenco di selezione associato a una clausola GROUP BY che include l'operatore CUBE o ROLLUP.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

GROUPING ( column_name ) 

Argomenti

  • column_name
    Colonna di una clausola GROUP BY in cui eseguire la ricerca di valori Null relativi a CUBE o ROLLUP.

Tipi restituiti

tinyint

Osservazioni

Il raggruppamento viene utilizzato per distinguere i valori Null restituiti da CUBE e ROLLUP dai valori Null standard. Il risultato Null restituito da un'operazione CUBE o ROLLUP 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)

Cronologia modifiche

Versione Cronologia

12 dicembre 2006

Contenuto modificato:
  • Rimozione della clausola OVER.

Vedere anche

Riferimento

Funzioni di aggregazione (Transact-SQL)
SELECT (Transact-SQL)

Guida in linea e informazioni

Assistenza su SQL Server 2005