Kom igångKom igång gratis

Skapa en sammanfattning med ROLLUP

ROLLUP-operatorn fungerar bäst när dina icke-mätbara attribut är hierarkiska. Annars kan du få aggregeringsnivåer som inte ger något intuitivt meningsfullt resultat.

I det här scenariot vill vi aggregera det totala antalet säkerhetsincidenter i tabellen IncidentRollup. Ledningen vill se data aggregerade efter kombinationen av kalenderår, kvartal och månad. Dessutom vill de ha separata aggregeringsrader för kalenderår plus kvartal, samt separata rader för varje enskilt kalenderår. Slutligen vill de ha en rad med totalsumman. Allt detta kan vi göra i en enda operation.

Den här övningen är en del av kursen

Tidsserieanalys i SQL Server

Visa kurs

Övningsinstruktioner

  • Slutför definitionen för NumberOfIncidents genom att summera antalet incidenter över varje intervall.
  • Fyll i GROUP BY-segmentet och inkludera operatorn WITH ROLLUP.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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;
Redigera och kör kod