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

ESTE TEMA SE APLICA A:síSQL Server (a partir de 2008)síAzure SQL DatabasenoAzure SQL Data Warehouse noAlmacenamiento de datos paralelos THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Indica si una expresión de columna especificada en una lista GROUP BY es agregada o no.Indicates whether a specified column expression in a GROUP BY list is aggregated or not. GROUPING devuelve 1 para agregado y 0 para no agregado, en el conjunto de resultados.GROUPING returns 1 for aggregated or 0 for not aggregated in the result set. AGRUPACIÓN puede usarse solo en la instrucción SELECT <seleccione > enumerar, HAVING y se ORDENA por cláusulas cuando se especifica GROUP BY.GROUPING can be used only in the SELECT <select> list, HAVING, and ORDER BY clauses when GROUP BY is specified.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax


GROUPING ( <column_expression> )  

ArgumentosArguments

<expresióndecolumna ><column_expression>
Es una columna o una expresión que contiene una columna de un GROUP BY cláusula.Is a column or an expression that contains a column in a GROUP BY clause.

Tipos devueltosReturn Types

tinyinttinyint

ComentariosRemarks

GROUPING se utiliza para distinguir entre los valores NULL devueltos por ROLLUP, CUBE o GROUPING SETS y los valores NULL normales.GROUPING is used to distinguish the null values that are returned by ROLLUP, CUBE or GROUPING SETS from standard null values. El valor NULL devuelto como resultado de una operación ROLLUP, CUBE o GROUPING SETS es un uso especial de NULL.The NULL returned as the result of a ROLLUP, CUBE or GROUPING SETS operation is a special use of NULL. Actúa como marcador de posición de columna en el conjunto de resultados y significa "todos".This acts as a column placeholder in the result set and means all.

EjemplosExamples

En el ejemplo siguiente se agrupa SalesQuota y se agregan las cantidades de SaleYTD en la base de datos AdventureWorks2012AdventureWorks2012.The following example groups SalesQuota and aggregates SaleYTD amounts in the AdventureWorks2012AdventureWorks2012 database. La función GROUPING se aplica a la columna 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  

El conjunto de resultados muestra dos valores NULL bajo SalesQuota.The result set shows two null values under SalesQuota. El primer valor NULL representa el grupo de valores NULL de esta columna en la tabla.The first NULL represents the group of null values from this column in the table. El segundo valor NULL se encuentra en la fila de resumen que agrega la operación ROLLUP.The second NULL is in the summary row added by the ROLLUP operation. La fila de resumen muestra la TotalSalesYTD cantidades para todos los SalesQuota agrupa y se indica mediante 1 en la Grouping columna.The summary row shows the TotalSalesYTD amounts for all SalesQuota groups and is indicated by 1 in the Grouping column.

El conjunto de resultados es el siguiente.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)

Vea tambiénSee Also

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