開始使用免費開始

分析客戶資料以偵測潛在詐欺

在最後這組練習中,你會分析日間 Spa 的資料,以找出潛在的詐欺行為。我們的公司為每位客戶提供 1 張個人使用的通行證,以及 1 張訪客通行證。我們有每位客戶的報到與離場資料,且訪客通行證會連回該客戶的基礎客戶 ID。這表示當客戶與訪客同時報到時,時段可能會重疊。我們想檢查是否有單一客戶出現至少 3 個重疊的條目,因為那會違反公司的營運規範。

思考重疊條目的關鍵,是將資料反向樞紐(unpivot),把它視為一連串的進出事件。我們會先這麼做。

本練習屬於課程

SQL Server 的時間序列分析

檢視課程

練習說明

將起始事件與結束事件拆開。

  • 在查詢的「entrances」部分,將客戶的來訪開始日期(dsv.CustomerVisitStart)填入為 TimeUTC
  • 填入視窗函式,並將其別名為 StartStopPoints,用來產生每位客戶的報到事件串流,依其來訪開始日期排序。
  • 在查詢的「departures」部分,將客戶的來訪結束日期(dsv.CustomerVisitEnd)填入為 TimeUTC

動手互動練習

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

-- This section focuses on entrances:  CustomerVisitStart
SELECT
	dsv.CustomerID,
	dsv.___ AS TimeUTC,
	1 AS EntryCount,
    -- We want to know each customer's entrance stream
    -- Get a unique, ascending row number
	___() OVER (
      -- Break this out by customer ID
      PARTITION BY dsv.___
      -- Ordered by the customer visit start date
      ORDER BY dsv.___
    ) AS StartOrdinal
FROM dbo.DaySpaVisit dsv
UNION ALL
-- This section focuses on departures:  CustomerVisitEnd
SELECT
	dsv.CustomerID,
	dsv.___ AS TimeUTC,
	-1 AS EntryCount,
	NULL AS StartOrdinal
FROM dbo.DaySpaVisit dsv
編輯並執行程式碼