GROUPING
(day, month, year), y calcula subtotales en cada nivel de agregación, y después un total general. CUBE calcula subtotales para todas las combinaciones posibles de las columnas especificadas. GROUPING identifica qué filas devueltas por ROLLUP o CUBE son superagregados y cuáles son las filas que devolvería un GROUP BY sin modificar.
La función GROUPING toma varias columnas como argumento y devuelve una máscara de bits.
1indica que una fila devuelta por un modificadorROLLUPoCUBEdeGROUP BYes un subtotal0indica que una fila devuelta porROLLUPoCUBEno es un subtotal
GROUPING SETS
Cargar datos de ejemplo
Consultas sencillas
Comparar varias sentencias GROUP BY con GROUPING SETS
Comparación entre CUBE y GROUPING SETS
CUBE(datacenter,distro,version), establece una jerarquía que puede no tener sentido. No tiene sentido comparar version entre las dos distribuciones (ya que Arch y RHEL no tienen el mismo ciclo de publicación ni los mismos criterios de nomenclatura de versiones). El ejemplo de GROUPING SETS que aparece a continuación es más apropiado, ya que agrupa distro y version en el mismo conjunto.
La versión del ejemplo anterior puede no tener sentido si no está asociada a una distro; si estuviéramos rastreando la versión del kernel, sí podría tenerlo, porque la versión del kernel puede asociarse a cualquiera de las distros. Usar GROUPING SETS, como en el siguiente ejemplo, puede ser una mejor opción.