始める無料で始める

イベントのストリームを作る

前の演習では、デイスパのデータを入場と退場のストリームに分解しました。データをアンピボットすることで、次のステップであるストリーム全体の並び替えに進めます。

前の演習の結果は、一時テーブル #StartStopPoints に格納されています。このテーブルの列は CustomerIDTimeUTCEntryCountStartOrdinal です。この演習で使用するのはこれらの列だけです。 TimeUTC はイベント時刻、EntryCount はそのイベントによるネットの変化量(+1 または -1)を表し、StartOrdinal は入場イベントでのみ現れ、入場の順序を示します。

この演習はコースの一部です

SQL Serverで学ぶ時系列分析

コースを見る

演習の手順

  • 適切なウィンドウ関数(ROW_NUMBER())を記述して、チェックインとチェックアウトのストリームを時系列順に作成します。
  • ユーザーごとの結果を計算するために、顧客 ID でパーティション分割します。
  • イベント時刻で並べ替え、同時刻のタイは start ordinal の値を使って解決します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

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;
コードを編集して実行