CommencerCommencez gratuitement

Construire un flux d’événements

Dans l’exercice précédent, nous avons transformé les données du spa en un flux d’entrées et de sorties. Dé-pivoter les données nous permet de passer à l’étape suivante : 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 indique l’ordre d’arrivée.

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êtrage appropriée (ROW_NUMBER()) pour créer un flux d’enregistrements et de départs dans l’ordre chronologique.
  • Partitionnez par l’identifiant client pour calculer un résultat par utilisateur.
  • Triez par l’heure de l’événement et départagez les ex æquo à l’aide de la valeur d’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;
Modifier et exécuter le code