Indica si una expresión de columna especificada en una lista GROUP BY es agregada o no. GROUPING devuelve 1 para agregado y 0 para no agregado, en el conjunto de resultados. GROUPING sólo se puede usar en la lista de SELECT
Argumentos -
Es una columna o una expresión que contiene una columna en una cláusula GROUP BY.
Tipos de valor devueltostinyint
Notas GROUPING se utiliza para distinguir entre los valores NULL devueltos por ROLLUP, CUBE o GROUPING SETS y los valores NULL normales. El valor NULL devuelto como resultado de una operación ROLLUP, CUBE o GROUPING SETS es un uso especial de NULL.Actúa como marcador de posición de columna en el conjunto de resultados y significa "todos".
Ejemplos En el ejemplo siguiente se agrupa SalesQuota y se agregan las cantidades de SaleYTD. La función GROUPING se aplica a la columna SalesQuota.
USE AdventureWorks;
GO
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. El primer valor NULL representa el grupo de valores NULL de esta columna en la tabla. El segundo valor NULL se encuentra en la fila de resumen que agrega la operación ROLLUP. La fila de resumen indica las cantidades de TotalSalesYTD para todos los grupos SalesQuota, como señala el valor 1 en la columna Grouping.
Éste es el conjunto de resultados.
SalesQuota TotalSalesYTD Grouping
--------- ------------- --------
NULL 1533087.5999 0
250000.00 33461260.59 0
300000.00 9299677.9445 0
NULL 44294026.1344 1
Rollup
Los operadores ROLLUP, CUBE y GROUPING SETS son extensiones de la cláusula GROUP BY. Pueden generar el mismo conjunto de resultados que al utilizar UNION ALL para combinar consultas de agrupación única; aunque utilizar uno de los operadores GROUP BY suele ser más eficaz. Las consultas que usan los operadores ROLLUP y CUBE generan algunos de los conjuntos de resultados y realizan algunos de los cálculos que lleva a cabo las aplicaciones OLAP. Una operación ROLLUP puede calcular el equivalente de una dimensión o jerarquía OLAP.
Sintaxis:
ROLLUP (DATEPART(yyyy,OrderDate)
,DATEPART(mm,OrderDate)
,DATEPART(dd,OrderDate))
No hay comentarios:
Publicar un comentario