Construire un flux d'événements
Dans l'exercice précédent, nous avons transformé les données du spa de jour en un flux d'entrées et de sorties. Le dégroupement (unpivot) des données nous permet de passer à l'étape suivante, qui consiste à ordonner l'ensemble du flux.
Les résultats de l'exercice précédent se trouvent maintenant dans une table temporaire appelée #StartStopPoints. Les colonnes de cette table sont CustomerID, TimeUTC, EntryCount et StartOrdinal. Ce sont les seules colonnes dont vous aurez besoin dans cet exercice. TimeUTC représente l'heure de l'événement, EntryCount indique la variation nette pour l'événement (+1 ou -1) et StartOrdinal apparaît pour les événements d'entrée et donne l'ordre d'arrivée.
Cette activité fait partie du cours
Analyse de séries chronologiques dans SQL Server
Instructions de l’exercice
- Renseignez la fonction de fenêtre appropriée (
ROW_NUMBER()) pour créer un flux d'arrivées et de départs en ordre chronologique. - Effectuez une partition par l'identifiant du client pour calculer un résultat par utilisateur.
- Ordonnez par l'heure de l'événement et résolvez les ex æquo en utilisant la valeur de l'ordre de départ.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
SELECT s.*,
-- Build a stream of all check-in and check-out events
___() OVER (
-- Break this out by customer ID
PARTITION BY s.___
-- Order by event time and then the start ordinal
-- value (in case of exact time matches)
ORDER BY s.___, s.___
) AS StartOrEndOrdinal
FROM #StartStopPoints s;