GROUPING (Transact-SQL)GROUPING (Transact-SQL)

Aplica-se a:Applies to: simSQL ServerSQL Server (todas as versões compatíveis) yesSQL ServerSQL Server (all supported versions) SimBanco de Dados SQL do AzureAzure SQL DatabaseYesBanco de Dados SQL do AzureAzure SQL Database SimInstância Gerenciada do Azure SQLAzure SQL Managed InstanceYesInstância Gerenciada do Azure SQLAzure SQL Managed Instance simAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse AnalyticsAplica-se a:Applies to: simSQL ServerSQL Server (todas as versões compatíveis) yesSQL ServerSQL Server (all supported versions) SimBanco de Dados SQL do AzureAzure SQL DatabaseYesBanco de Dados SQL do AzureAzure SQL Database SimInstância Gerenciada do Azure SQLAzure SQL Managed InstanceYesInstância Gerenciada do Azure SQLAzure SQL Managed Instance simAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics

Indica se uma expressão de coluna especificada em uma lista GROUP BY é agregada ou não.Indicates whether a specified column expression in a GROUP BY list is aggregated or not. GROUPING retorna 1 para agregada ou 0 para não agregada no conjunto de resultados.GROUPING returns 1 for aggregated or 0 for not aggregated in the result set. GROUPING pode ser usado apenas na lista SELECT <select>, nas cláusulas HAVING e ORDER BY, quando GROUP BY é especificado.GROUPING can be used only in the SELECT <select> list, HAVING, and ORDER BY clauses when GROUP BY is specified.

Ícone de link do tópico Convenções da sintaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

GROUPING ( <column_expression> )  

Observação

Para ver a sintaxe do Transact-SQL para o SQL Server 2014 e versões anteriores, confira a Documentação das versões anteriores.To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

ArgumentosArguments

<column_expression>
É uma coluna ou uma expressão que contém uma coluna em uma cláusula GROUP BY.Is a column or an expression that contains a column in a GROUP BY clause.

Tipos de retornoReturn Types

tinyinttinyint

ComentáriosRemarks

GROUPING é usado para distinguir os valores nulos retornados por ROLLUP, CUBE ou GROUPING SETS dos valores nulos padrão.GROUPING is used to distinguish the null values that are returned by ROLLUP, CUBE or GROUPING SETS from standard null values. O NULL retornado como resultado de uma operação ROLLUP, CUBE ou GROUPING SETS é um uso especial de NULL.The NULL returned as the result of a ROLLUP, CUBE or GROUPING SETS operation is a special use of NULL. Isto atua como um espaço reservado de coluna no conjunto de resultados e significa tudo.This acts as a column placeholder in the result set and means all.

ExemplosExamples

O exemplo a seguir agrupa SalesQuota e agrega quantias de SaleYTD no banco de dados AdventureWorks2012AdventureWorks2012.The following example groups SalesQuota and aggregates SaleYTD amounts in the AdventureWorks2012AdventureWorks2012 database. A função GROUPING é aplicada à coluna SalesQuota.The GROUPING function is applied to the SalesQuota column.

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.The result set shows two null values under SalesQuota. O primeiro NULL representa o grupo de valores nulos desta coluna na tabela.The first NULL represents the group of null values from this column in the table. O segundo NULL está na linha de resumo somada pela operação ROLLUP.The second NULL is in the summary row added by the ROLLUP operation. A linha de resumo mostra as quantidades de TotalSalesYTD para todos os grupos SalesQuota e é indicada por 1 na coluna Grouping.The summary row shows the TotalSalesYTD amounts for all SalesQuota groups and is indicated by 1 in the Grouping column.

Este é o conjunto de resultados.Here is the result set.

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émSee Also

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