Condividi tramite


RAGGRUPPAMENTO (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsEndpoint di analisi SQL in Microsoft FabricWarehouse in Microsoft FabricDatabase SQL 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

Il seguente esempio raggruppa SalesQuota e aggrega SaleYTD importi nel database AdventureWorks2025. 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)
GRUPPO PER (Transact-SQL)