Totaux cumulatifs avec SUM()
L'un des usages les plus puissants des fonctions de fenêtrage est le calcul des totaux cumulatifs : un cumul en continu d'une valeur donnée sur une période. Ici, nous voulons utiliser une fonction de fenêtrage pour calculer combien d'incidents sont survenus à chaque date et pour chaque type d'incident en juillet 2019, ainsi qu'un cumul du nombre total d'incidents par type d'incident. Une fonction de fenêtrage nous permettra de résoudre ce problème en une seule requête.
Cette activité fait partie du cours
Analyse de séries chronologiques dans SQL Server
Instructions de l’exercice
- Indiquez la bonne fonction de fenêtrage.
- Complétez la clause
PARTITION BYdans la fonction de fenêtrage, en partitionnant par l'identifiant du type d'incident. - Complétez la clause
ORDER BYdans la fonction de fenêtrage, en triant par date d'incident (dans son ordre par défaut, croissant).
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
SELECT
ir.IncidentDate,
ir.IncidentTypeID,
ir.NumberOfIncidents,
-- Get the total number of incidents
___(ir.NumberOfIncidents) OVER (
-- Do this for each incident type ID
PARTITION BY ir.___
-- Sort by the incident date
ORDER BY ir.___
) AS NumberOfIncidents
FROM dbo.IncidentRollup ir
INNER JOIN dbo.Calendar c
ON ir.IncidentDate = c.Date
WHERE
c.CalendarYear = 2019
AND c.CalendarMonth = 7
AND ir.IncidentTypeID IN (1, 2)
ORDER BY
ir.IncidentTypeID,
ir.IncidentDate;