CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Indiquez la bonne fonction de fenêtrage.
  • Complétez la clause PARTITION BY dans la fonction de fenêtrage, en partitionnant par l'identifiant du type d'incident.
  • Complétez la clause ORDER BY dans 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;
Modifier et exécuter le code