降采样到每周粒度
管理层想了解 2020 年大家对水疗中心的使用情况。他们希望按周查看结果,包括设施使用的总分钟数、到访人数,以及该周 Customer ID 最大的客户,以判断是否有新客户到来。
我们可以使用 SQL Server 的函数将数据降采样到固定的粒度。例如,DATEPART() 就是一种函数。
本练习是课程的一部分
SQL Server 中的时间序列分析
练习说明
- 使用
DATEPART()函数将日度水疗访问数据降采样为每周粒度。 - 找出某一周内 Customer ID 最大的客户。
- 在
GROUP BY子句中填入SELECT子句里所有未聚合的值(但不要包含类似AS Week这样的别名)。
交互式实操练习
通过完成这段示例代码来试试这个练习。
SELECT
-- Downsample to a weekly grain
___(___, dsv.CustomerVisitStart) AS Week,
SUM(dsv.AmenityUseInMinutes) AS AmenityUseInMinutes,
-- Find the customer with the largest customer ID for that week
___(dsv.___) AS HighestCustomerID,
COUNT(1) AS NumberOfAttendees
FROM dbo.DaySpaVisit dsv
WHERE
dsv.CustomerVisitStart >= '2020-01-01'
AND dsv.CustomerVisitStart < '2021-01-01'
GROUP BY
-- When we use aggregation functions like SUM or COUNT,
-- we need to GROUP BY the non-aggregated columns
___(___, dsv.CustomerVisitStart)
ORDER BY
Week;