So sánh theo tuần
Trong bài trước, bạn đã tận dụng cửa sổ theo tháng để tính thay đổi theo tháng. Nhưng đôi khi, bạn sẽ muốn tính cho khoảng thời gian khác, như so sánh 7 ngày gần nhất với 7 ngày trước đó. Để tính giá trị của 7 ngày gần nhất, bạn sẽ cần thiết lập một rolling calculation.
Trong bài này, bạn sẽ lấy trung bình trượt 7 ngày của views cho mỗi date và so sánh với trung bình 7 ngày trước đó của views. Cách này cho bạn một phép so sánh tuần-trên-tuần rõ ràng cho từng ngày.
Cú pháp cho rolling average là AVG(value) OVER (PARTITION BY field ORDER BY field ROWS BETWEEN N PRECEDING AND CURRENT ROW), trong đó N là số hàng lùi lại khi thực hiện phép tính. Hãy nhớ rằng CURRENT ROW cũng được tính là một hàng.
Bài tập này là một phần của khóa học
Lập báo cáo trong SQL
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
-- Pull in date and daily_views
____,
____ AS daily_views,
-- Calculate the rolling 7 day average
____ AS weekly_avg
FROM ____
GROUP BY ____;