jueves, 17 de noviembre de 2016

ROLLUP

ROLLUP es una extensión de la cláusula GROUP BY.

Utilice la operación ROLLUP para generar agregados acumulativos como, por ejemplo, subtotales.

El operador ROLLUP proporciona agregados y superagregados para expresiones dentro de una sentencia GROUP BY. Los escritores de informes pueden utilizar el operador ROLLUP para extraer estadísticas e información de resumen de los juegos de resultados. Los agregados acumulativos se pueden utilizar en informes, diagramas y gráficos. 
El operador ROLLUP crea agrupamientos moviéndose en una dirección, de derecha a izquierda, a lo largo de la lista de columnas especificada en la cláusula GROUP BY. A continuación, aplica la función agregada a estos agrupamientos. 

Nota 
Para generar subtotales en n dimensiones (es decir, n columnas de la cláusula GROUP BY) sin un operador ROLLUP, se deben enlazar n+1 sentencias SELECT con UNION ALL. Esto hace que la ejecución de la consulta resulte ineficiente, ya que cada sentencia SELECT provoca acceso a tablas. El operador ROLLUP recopila sus resultados con un solo acceso a tablas. El operador ROLLUP es útil cuando hay muchas columnas implicadas en la generación de subtotales. 

Los subtotales y los totales se generan con ROLLUP. CUBE genera totales también, pero acumula eficazmente en cada dirección posible, lo que genera datos de valores derivados de varias tablas. 


Ejemplo de un Operador ROLLUP 
En el ejemplo de la diapositiva: 
Los salarios totales de todos los identificadores de puesto de un departamento para los departamentos cuyo identificador es menor que 60 se muestran mediante la cláusula GROUP BY.  
El operador ROLLUP muestra: 
Salario total de cada departamento cuyo identificador es menor que 60  
Salario total de todos los departamentos cuyo identificador es menor que 60, independientemente de los identificadores de puesto  
En este ejemplo, 1 indica un grupo totalizado tanto por DEPARTMENT_ID como por JOB_ID, 2 indica un grupo totalizado sólo por DEPARTMENT_ID y 3 indica la suma total. 

El operador ROLLUP crea subtotales que acumulan desde el nivel más detallado hasta la suma total, después de la lista de agrupamiento especificada en la cláusula GROUP BY. Primero, calcula los valores agregados estándar para los grupos especificados en la cláusula GROUP BY. (en el ejemplo, la suma de salarios agrupados en cada puesto de un departamento). A continuación, va creando subtotales de mayor nivel progresivamente, de derecha a izquierda en la lista de columnas de agrupamiento. (En el ejemplo, se calcula la suma de salarios para cada departamento, seguida de la suma de los salarios para todos los departamentos). 

Dadas n expresiones en el operador ROLLUP de la cláusula GROUP BY., la operación da como resultado n + 1 (en este caso, 2 + 1 = 3) agrupamientos.  

Las filas basadas en los valores de las n primeras expresiones se denominan filas o filas normales y las demás, filas superagregadas
Share:

0 comentarios:

Publicar un comentario

Archivo

Cual es el tema de mayor interes para ti?