CommencerCommencez gratuitement

Voir les périodes passées et futures

Les fonctions de fenêtre LAG() et LEAD() permettent de regarder respectivement en arrière ou en avant dans le temps. Cela nous permet de comparer des données d’une période à l’autre au sein d’une seule requête simple.

Dans cet exercice, nous voulons comparer le nombre d’incidents de sécurité par jour pour les types d’incident 1 et 2 pendant le mois de juillet 2019, plus précisément la période allant du 2 juillet au 31 juillet.

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 fonction de fenêtre pour renvoyer le nombre d’incidents du jour précédent, partitionné par identifiant de type d’incident et ordonné par date d’incident.
  • Complétez la fonction de fenêtre pour renvoyer le nombre d’incidents du jour suivant, partitionné par identifiant de type d’incident et ordonné par date d’incident.

Exercice interactif pratique

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

SELECT
	ir.IncidentDate,
	ir.IncidentTypeID,
    -- Get the prior day's number of incidents
	___(ir.___, ___) OVER (
      	-- Partition by incident type ID
		PARTITION BY ir.___
      	-- Order by incident date
		ORDER BY ir.___
	) AS PriorDayIncidents,
	ir.NumberOfIncidents AS CurrentDayIncidents,
    -- Get the next day's number of incidents
	___(ir.___, ___) OVER (
      	-- Partition by incident type ID
		PARTITION BY ir.___
      	-- Order by incident date
		ORDER BY ir.___
	) AS NextDayIncidents
FROM dbo.IncidentRollup ir
WHERE
	ir.IncidentDate >= '2019-07-02'
	AND ir.IncidentDate <= '2019-07-31'
	AND ir.IncidentTypeID IN (1, 2)
ORDER BY
	ir.IncidentTypeID,
	ir.IncidentDate;
Modifier et exécuter le code