Genera un riepilogo con ROLLUP
L'operatore ROLLUP funziona al meglio quando gli attributi non di misura sono gerarchici. In caso contrario, potresti ottenere livelli di aggregazione insoliti che non hanno molto senso intuitivo.
In questo scenario, vogliamo aggregare il numero totale di incidenti di sicurezza nella tabella IncidentRollup. Il management desidera vedere i dati aggregati per combinazione di anno di calendario, trimestre di calendario e mese di calendario. Inoltre, vorrebbe anche vedere righe aggregate separate per anno di calendario più trimestre di calendario, oltre a righe aggregate separate per ciascun anno di calendario. Infine, desidera un'ulteriore riga con il totale complessivo. Possiamo fare tutto questo in un'unica operazione.
Questo esercizio fa parte del corso
Analisi delle serie temporali in SQL Server
Istruzioni dell'esercizio
- Completa la definizione di
NumberOfIncidentssommando il numero di incidenti su ciascun intervallo. - Compila il segmento
GROUP BY, includendo l'operatoreWITH ROLLUP.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
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;