Condividi tramite


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)

Vedi anche

GROUPING_ID (Transact-SQL)
GROUP BY (Transact-SQL)