Začněte nyníZačněte zdarma

Vytvoření souhrnu pomocí ROLLUP

Operátor ROLLUP funguje nejlépe tehdy, když jsou tvoje nemetrické atributy hierarchické. Jinak můžeš skončit s agregačními úrovněmi, které nedávají intuitivní smysl.

V tomto scénáři chceme agregovat celkový počet bezpečnostních incidentů z tabulky IncidentRollup. Vedení chce vidět data agregovaná podle kombinace kalendářního roku, kalendářního čtvrtletí a kalendářního měsíce. Kromě toho chce mít samostatné souhrnné řádky pro každý kalendářní rok spolu s příslušným čtvrtletím a také samostatné řádky pro každý kalendářní rok. A nakonec jeden řádek pro celkový součet. To vše zvládneme v jediné operaci.

Toto cvičení je součástí kurzu

Time Series Analysis in SQL Server

Zobrazit kurz

Pokyny k cvičení

  • Dokonči definici NumberOfIncidents tak, že sečteš počet incidentů v každém rozsahu.
  • Doplň sekci GROUP BY včetně operátoru WITH ROLLUP.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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;
Upravit a spustit kód