Даунсемплінг до тижневого рівня
Керівництво хоче побачити, наскільки активно відвідувачі користувалися спа у 2020 році. Їм потрібні підсумки за тижнями: загальна кількість хвилин використання зручностей, кількість відвідувачів і клієнт з найбільшим ідентифікатором клієнта за тиждень, щоб зрозуміти, чи з'являються нові клієнти.
У SQL Server можна виконати даунсемплінг до фіксованого рівня саме так. Одна з корисних функцій для цього — DATEPART().
Ця вправа є частиною курсу
Аналіз часових рядів у SQL Server
Інструкції до вправи
- Виконайте даунсемплінг даних про відвідування спа за днями до тижневого рівня за допомогою функції
DATEPART(). - Знайдіть клієнта з найбільшим ідентифікатором клієнта для заданого тижня.
- Заповніть оператор
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;