Afficher toutes les agrégations avec CUBE
L’opérateur CUBE fournit une agrégation croisée de toutes les combinaisons et peut produire un très grand nombre de lignes. Cet opérateur fonctionne mieux avec des données non hiérarchiques, lorsque vous vous intéressez à la fois aux agrégations indépendantes et aux agrégations combinées.
Dans ce scénario, nous souhaitons trouver le nombre total d’incidents de sécurité dans la table IncidentRollup, sans suivre de hiérarchie stricte. À la place, nous allons nous concentrer sur l’agrégation de plusieurs attributs non liés.
Cet exercice fait partie du cours
<cours>Analyse de séries temporelles dans SQL Server</cours>Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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;