Giảm mẫu xuống mức tuần
Ban quản lý muốn xem mức độ mọi người sử dụng spa trong năm 2020. Họ muốn xem kết quả theo từng tuần, bao gồm tổng số phút sử dụng tiện ích, số người tham dự, và khách hàng có Customer ID lớn nhất trong tuần đó để xem liệu có khách hàng mới đến hay không.
Chúng ta có thể dùng các hàm trong SQL Server để giảm mẫu dữ liệu về một mức cố định như vậy. Một trong các hàm đó là DATEPART().
Bài tập này là một phần của khóa học
Phân tích chuỗi thời gian trong SQL Server
Hướng dẫn bài tập
- Giảm mẫu dữ liệu lượt ghé thăm spa theo ngày xuống mức tuần bằng hàm
DATEPART(). - Tìm khách hàng có Customer ID lớn nhất trong một tuần cho trước.
- Điền mệnh đề
GROUP BYvới mọi giá trị không được tổng hợp trong mệnh đềSELECT(nhưng không dùng bí danh nhưAS Week).
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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;