降採樣到每週層級
管理階層想了解 2020 年大家對 spa 的使用狀況。他們希望按週檢視結果,包括設施使用的總分鐘數、參與人數,以及當週擁有最大 Customer ID 的顧客,以判斷是否有新客戶加入。
我們可以使用 SQL Server 的函式將資料降採樣到固定的層級。其中一個函式是 DATEPART()。
本練習屬於課程
SQL Server 的時間序列分析
練習說明
- 使用
DATEPART()函式,將日間 spa 造訪資料降採樣為每週層級。 - 找出每週 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;