開始使用免費開始

建立事件串流

在前一個練習中,我們將日間水療的資料拆解為進出場事件的串流。將資料做 unpivot 之後,我們就能進入下一步:為整個事件串流排序。

前一個練習的結果現在位於名為 #StartStopPoints 的暫存資料表。此表的欄位為 CustomerIDTimeUTCEntryCountStartOrdinal這是你在本練習中唯一需要用到的欄位。 TimeUTC 代表事件時間,EntryCount 表示該事件的淨變化(+1 或 -1),而 StartOrdinal 只會出現在入場事件,代表入場的順序。

本練習屬於課程

SQL Server 的時間序列分析

檢視課程

練習說明

  • 填入適當的視窗函式(ROW_NUMBER()),依時間順序建立一個依序的報到與離場事件串流。
  • 以客戶 ID 分割(PARTITION),對每位使用者各自計算結果。
  • 依事件時間排序,若時間相同,則以入場序號欄位來決定先後。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

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;
編輯並執行程式碼