Share via


GROUPING (Transact-SQL)

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 for especificado.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

GROUPING ( <column_expression> )

Argumentos

  • <expressão de coluna >
    É 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. A função GROUPING é aplicada à coluna SalesQuota.

USE AdventureWorks;
GO
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 quantias TotalSalesYTD para todos os grupos SalesQuota e é indicada por 1 na coluna Grouping.

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)