CommencerCommencez gratuitement

Voir les trois périodes précédentes

Les fonctions de fenêtre LAG() et LEAD() permettent respectivement de regarder en arrière ou en avant dans le temps. Elles offrent ainsi la possibilité de comparer des données d’une période à l’autre dans une requête simple. Chaque appel à LAG() ou LEAD() renvoie soit NULL, soit une seule valeur. Si vous souhaitez remonter sur plusieurs périodes, vous pouvez inclure plusieurs appels à LAG() ou LEAD().

Dans cet exercice, nous voulons comparer le nombre d’incidents de sécurité par jour pour les types d’incidents 1 et 2 pendant juillet 2019, plus précisément la période allant du 2 juillet au 31 juillet. La direction souhaite voir une fenêtre glissante de quatre jours par type d’incident afin d’identifier d’éventuelles tendances marquantes, en commençant deux jours avant et en regardant un jour après.

Cet exercice fait partie du cours

<cours>Analyse de séries temporelles dans SQL Server</cours>
Voir le cours

Instructions de l’exercice

  • Complétez la requête SQL pour renvoyer le nombre d’incidents survenus il y a deux périodes.
  • Complétez la requête SQL pour renvoyer le nombre d’incidents de la période précédente.
  • Complétez la requête SQL pour renvoyer le nombre d’incidents de la période suivante.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

SELECT
	ir.IncidentDate,
	ir.IncidentTypeID,
    -- Fill in two periods ago
	___(ir.___, ___) OVER (
		PARTITION BY ir.IncidentTypeID
		ORDER BY ir.IncidentDate
	) AS Trailing2Day,
    -- Fill in one period ago
	___(ir.___, ___) OVER (
		PARTITION BY ir.IncidentTypeID
		ORDER BY ir.IncidentDate
	) AS Trailing1Day,
	ir.NumberOfIncidents AS CurrentDayIncidents,
    -- Fill in next period
	___(ir.___, ___) OVER (
		PARTITION BY ir.IncidentTypeID
		ORDER BY ir.IncidentDate
	) AS NextDay
FROM dbo.IncidentRollup ir
WHERE
	ir.IncidentDate >= '2019-07-01'
	AND ir.IncidentDate <= '2019-07-31'
	AND ir.IncidentTypeID IN (1, 2)
ORDER BY
	ir.IncidentTypeID,
	ir.IncidentDate;
Modifier et exécuter le code