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

Vlastní seskupení pomocí GROUPING SETS

Operátor GROUPING SETS ti umožňuje přesně definovat, na jakých úrovních chceš data agregovat.

V tomto scénáři by vedení rádo vidělo výsledky podobné těm z ROLLUP, ale bez tolika detailů. Místo zobrazení všech úrovní agregace v hierarchii chce vedení vidět pouze tři úrovně: celkové součty, součty podle roku a součty podle roku, čtvrtletí a měsíce.

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

Time Series Analysis in SQL Server

Zobrazit kurz

Pokyny k cvičení

  • Doplň část GROUP BY pomocí GROUPING SETS. Chceme zobrazit:
  • Jeden řádek pro každou kombinaci roku, čtvrtletí a měsíce (v tomto hierarchickém pořadí)
  • Jeden řádek pro každý rok
  • Jeden řádek s celkovými součty (tedy prázdnou skupinou)

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,
	SUM(ir.NumberOfIncidents) AS NumberOfIncidents
FROM dbo.IncidentRollup ir
	INNER JOIN dbo.Calendar c
		ON ir.IncidentDate = c.Date
WHERE
	ir.IncidentTypeID = 2
-- Fill in your grouping operator here
GROUP BY ___ ___
(
  	-- Group in hierarchical order:  calendar year,
    -- calendar quarter name, calendar month
	(___, ___, ___),
  	-- Group by calendar year
	(___),
    -- This remains blank; it gives us the grand total
	()
)
ORDER BY
	c.CalendarYear,
	c.CalendarQuarterName,
	c.CalendarMonth;
Upravit a spustit kód