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
Pokyny k cvičení
- Doplň část
GROUP BYpomocí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;