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
Sintaxis
GROUPING ( column_expression )
Argumentos
Es una columna o una expresión que contiene una columna en una cláusula GROUP BY.
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".
SELECT TipoTransaccion, Divisa, 'Todas las Divisas'=GROUPING(Divisa), SUM(Cantidad) Cantidad FROM Movimientos GROUP BY TipoTransaccion, Divisa WITH CUBE TipoTransaccion Divisa Todas las Divisas Cantidad ----------------------- -------------- -------------------- ----------- Entrada NULL 0 2000Entrada Dolar 0 6200Entrada Euro 0 10600Entrada Libra 0 4500Entrada Yen 0 45000Entrada NULL 1 68300Salida Dolar 0 7000Salida Libra 0 1700Salida Yen 0 30000Salida NULL 1 38700NULL NULL 1 107000NULL NULL 0 2000NULL Dolar 0 13200NULL Euro 0 10600NULL Libra 0 6200NULL Yen 0 75000(16 filas afectadas) Como se ve hay dos tipos de NULL en la columna de divisas. Las que corresponden al último registro que insertamos que tiene un NULL en divisa, y al que la función GROUPING le asocia un 0, y el NULL que podemos traducir por "Todas las divisas" al que la función GROUPING le asocia un 1.
No hay comentarios.:
Publicar un comentario