Inizia subitoInizia gratis

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

Visualizza corso

Istruzioni dell'esercizio

  • Completa la definizione di NumberOfIncidents sommando il numero di incidenti su ciascun intervallo.
  • Compila il segmento GROUP BY, includendo l'operatore WITH 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;
Modifica ed esegui il codice