주 단위로 다운샘플링하기
경영진은 2020년에 사람들이 스파를 얼마나 잘 이용했는지 보고 싶어 합니다. 주 단위로 결과를 확인하며, 편의시설 사용 시간(분) 합계, 참석자 수, 그리고 그 주에 가장 큰 Customer ID를 가진 고객을 확인해 신규 고객 유입이 있는지 보려 합니다.
SQL Server의 함수를 사용하면 이렇게 고정된 세분성으로 다운샘플링할 수 있습니다. 그중 하나가 DATEPART() 함수입니다.
이 연습은 강의의 일부입니다
SQL Server에서의 시계열 분석
연습 안내
DATEPART()함수를 사용해 데이 스파 방문 데이터를 주 단위로 다운샘플링하세요.- 특정 주에 대해 가장 큰 Customer ID를 가진 고객을 찾으세요.
SELECT절에서 집계되지 않은 값이 있다면 모두GROUP BY절에 포함하세요(단,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;