Genera un resumen con ROLLUP
El operador ROLLUP funciona mejor cuando tus atributos que no son medidas tienen una estructura jerárquica. De lo contrario, puedes acabar con niveles de agregación extraños que no resultan intuitivos.
En este escenario, queremos agregar el número total de incidentes de seguridad en la tabla IncidentRollup. Dirección quiere ver los datos agregados por la combinación de año calendario, trimestre calendario y mes calendario. Además, también quiere ver líneas de agregación separadas para año calendario más trimestre calendario, así como líneas de agregación separadas para cada año calendario. Por último, quiere una línea adicional con el total general. Podemos hacer todo esto en una sola operación.
Este ejercicio forma parte del curso
Análisis de series temporales en SQL Server
Instrucciones del ejercicio
- Completa la definición de
NumberOfIncidentssumando el número de incidentes en cada intervalo. - Rellena el segmento
GROUP BY, incluyendo el operadorWITH ROLLUP.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
SELECT
c.CalendarYear,
c.CalendarQuarterName,
c.CalendarMonth,
-- Include the sum of incidents by day over each range
___(ir.___) AS NumberOfIncidents
FROM dbo.IncidentRollup ir
INNER JOIN dbo.Calendar c
ON ir.IncidentDate = c.Date
WHERE
ir.IncidentTypeID = 2
GROUP BY
-- GROUP BY needs to include all non-aggregated columns
c.___,
c.___,
c.___
-- Fill in your grouping operator
WITH ___
ORDER BY
c.CalendarYear,
c.CalendarQuarterName,
c.CalendarMonth;