MySQL cuenta con un modificador para las consultas agregadas (Group by) que nos puede resultar muy útil en la generación de nuestros reportes. El modificador ROLLUP añade algunas filas adicionales a los resultados generados. Estas filas representan operaciones de agregación de mayor nivel, es decir que nos permite agregar los resultados ya agregados.
Por ejemplo, digamos que tenemos una tabla con la siguiente estructura:
Si ejecutamos un Query agregado, por ejemplo
select categoria, sum(ventas) from tabla Group by categoria
Nos arroja el siguiente resultado que es la suma de todas las ventas por categoría de producto.
Al añadir el ROLLUP MySQL agrega una fila con la sumatoria total de todas las categorías.
select categoria, sum(ventas) from tabla Group by categoria with rollup
Al añadir mas columnas al group by y cuando existe un cambio de valor, la consulta regresa una fila adicional con los valores agregados. Por ejemplo en nuestra consulta anterior podemos solicitar que nos regrese el valor de la sumatoria por país.
select pais,categoria, sum(ventas) from tabla Group by pais,categoria
Esta función resulta muy útil al momento de efectuar reportes o al ser incorporada en Procesamiento Analítico de datos.
Revisa la documentación para conocer mas detalles y ejemplos de esta función.