Compartilhar via


GROUPING (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Ponto de extremidade de análises SQL no Microsoft Fabric Warehouse 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> )  

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.

Veja a seguir 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)

Confira também

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