Vizualizează toate agregările cu CUBE
Operatorul CUBE realizează o agregare încrucișată a tuturor combinațiilor posibile și poate genera un număr foarte mare de rânduri. Acest operator funcționează cel mai bine cu date non-ierarhice, atunci când ești interesat atât de agregările independente, cât și de cele combinate.
În acest scenariu, vrem să aflăm numărul total de incidente de securitate din tabela IncidentRollup, fără să urmăm o ierarhie propriu-zisă. În schimb, ne vom concentra pe agregarea mai multor atribute fără legătură între ele.
Acest exercițiu face parte din cursul
Analiza seriilor de timp în SQL Server
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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;