GROUPING (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPonto de extremidade de análises SQL no Microsoft FabricWarehouse no Microsoft Fabric

Indica se uma expressão de coluna especificada em uma lista GROUP BY é agregada ou não. GROUPING retorna 1 para agregada ou 0 para não agregada no conjunto de resultados. GROUPING pode ser usado apenas na lista SELECT <select>, nas cláusulas HAVING e ORDER BY, quando GROUP BY é especificado.

Convenções de sintaxe de Transact-SQL

Sintaxe

GROUPING ( <column_expression> )  

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

<column_expression>
É uma coluna ou uma expressão que contém uma coluna em uma cláusula GROUP BY.

Tipos de retorno

tinyint

Comentários

GROUPING é usado para distinguir os valores nulos retornados por ROLLUP, CUBE ou GROUPING SETS dos valores nulos padrão. O NULL retornado como resultado de uma operação ROLLUP, CUBE ou GROUPING SETS é um uso especial de NULL. Isto atua como um espaço reservado de coluna no conjunto de resultados e significa tudo.

Exemplos

O exemplo a seguir agrupa SalesQuota e agrega quantias de SaleYTD no banco de dados AdventureWorks2022. A função GROUPING é aplicada à coluna SalesQuota.

SELECT SalesQuota, SUM(SalesYTD) 'TotalSalesYTD', GROUPING(SalesQuota) AS 'Grouping'  
FROM Sales.SalesPerson  
GROUP BY SalesQuota WITH ROLLUP;  
GO  

O conjunto de resultados mostra dois valores nulos em SalesQuota. O primeiro NULL representa o grupo de valores nulos desta coluna na tabela. O segundo NULL está na linha de resumo somada pela operação ROLLUP. A linha de resumo mostra as quantidades de TotalSalesYTD para todos os grupos SalesQuota e é indicada por 1 na coluna Grouping.

Este é o conjunto de resultados.

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)

Consulte Também

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