He descubierto que CUBE genera todas las permutaciones, pero estoy teniendo problemas con ROLLUP. No parece que haya buenos recursos en línea o en el libro que estoy leyendo para explicar SQL para personas como yo que luchan con ello.Comprender ROLLUP en SQL
Mi libro dice que ROLLUP es un caso especial del operador CUBE que excluye todos los casos que no siguen una jerarquía dentro de los resultados.
No estoy del todo seguro de lo que significa, pero al ejecutarlo en una tabla hice algunos resultados útiles.
Hice una tabla desde otra página en Google como esto:
Type Store Number
Dog Miami 12
Cat Miami 18
Turtle Tampa 4
Dog Tampa 14
Cat Naples 9
Dog Naples 5
Turtle Naples 1
entonces aquí es la consulta que hice:
select store,[type], SUM(number) as Number from pets
group by store, [type]
with rollup
Esto me muestra el número de cada tipo de animal doméstico en cada tienda y mascotas totales en cada tienda, lo cual es genial. Si quiero ver la consulta basada en mascotas, descubrí que debo cambiar el grupo por orden para que el tipo sea lo primero.
Entonces, ¿se acumula según la primera cláusula group by?
La otra pregunta es, leí que usa ROLLUP en lugar de CUBE cuando tiene una columna de año y mes para detenerla agregando el mismo mes en varios años. Creo que entiendo lo que esto significa, pero ¿alguien podría aclararlo? ¿Y cómo lo configuras así?
¿Se puede usar ROLLUP para excluir otras combinaciones de columnas también? Mi tabla de arriba es bastante simple y la consulta muestra "mascotas por tienda", pero si hubiera otras columnas, ¿podría incluirlas/excluirlas de los resultados?
Oh, wow que hace que sea más fácil de entender de forma masiva! Ojalá hubieran puesto eso en el libro de texto. Gracias. – NibblyPig
De nada. ¿Podría marcar su pregunta como respondida? –
Absolutamente, estaba esperando una respuesta para usar el paquete acumulativo para excluir otras combinaciones de columnas, pero en realidad encontré la respuesta a eso con grupos de conjuntos tan sí. ¡Debería escribir libros de texto porque la primera mitad de su respuesta me dijo más que mi libro de texto y un montón de Google! – NibblyPig