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 AdventureWorks2008R2;
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 quantidades de TotalSalesYTD para todos os grupos SalesQuota e é indicada por 1 na coluna Grouping.

Aqui está 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)