Zobrazení všech agregací pomocí CUBE
Operátor CUBE vytváří křížovou agregaci všech kombinací a výsledek může obsahovat velké množství řádků. Tento operátor se nejlépe hodí pro nehierarchická data, u nichž tě zajímají jak samostatné, tak kombinované agregace.
V tomto scénáři chceme zjistit celkový počet bezpečnostních incidentů v tabulce IncidentRollup, ale nebudeme dodržovat žádnou pevnou hierarchii. Místo toho se zaměříme na agregaci několika nesouvisejících atributů.
Toto cvičení je součástí kurzu
Time Series Analysis in SQL Server
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
-- Use the ORDER BY clause as a guide for these columns
-- Don't forget that comma after the third column if you
-- copy from the ORDER BY clause!
ir.___,
c.___,
c.___,
SUM(ir.NumberOfIncidents) AS NumberOfIncidents
FROM dbo.IncidentRollup ir
INNER JOIN dbo.Calendar c
ON ir.IncidentDate = c.Date
WHERE
ir.IncidentTypeID IN (3, 4)
GROUP BY
-- GROUP BY should include all non-aggregated columns
ir.___,
c.___,
c.___
-- Fill in your grouping operator
WITH ___
ORDER BY
ir.IncidentTypeID,
c.CalendarQuarterName,
c.WeekOfMonth;