开始使用免费开始使用

分析客户数据以识别潜在欺诈

在最后这一组练习中,您将分析日间水疗中心的数据,以识别潜在的欺诈行为。公司为每位客户提供一张个人通行证和一张嘉宾通行证。我们掌握每位客户的签到与签退数据,嘉宾通行证会关联到对应的基础客户 ID。这意味着当客户与嘉宾一同签到时,记录之间可能会存在重叠。我们希望检查某位客户是否至少出现了 3 次重叠记录,因为这将违反我们的业务规则。

思考重叠记录的关键在于对数据进行反透视,并将其视为一串进入与离开的事件流。我们先来完成这一步。

本练习是课程的一部分

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
编辑并运行代码