Afficher toutes les agrégations avec CUBE
L'opérateur CUBE produit une agrégation croisée de toutes les combinaisons, ce qui peut générer un très grand nombre de lignes. Cet opérateur est particulièrement efficace avec des données non hiérarchiques, lorsque vous vous intéressez autant aux agrégations indépendantes qu'aux agrégations combinées.
Dans ce scénario, nous voulons trouver le nombre total d'incidents de sécurité dans la table IncidentRollup, sans suivre une hiérarchie précise. Nous allons plutôt nous concentrer sur l'agrégation de plusieurs attributs non liés.
Cette activité fait partie du cours
Analyse de séries chronologiques dans SQL Server
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;