일 단위로 다운샘플링하기
데이터를 더 높은 그레인으로 롤업하는 일은 흔한 분석 작업이에요. 타임스탬프가 있는 데이터셋을 가지고 집계 결과를 보고 싶을 수 있죠. SQL Server에서는 원하는 그레인에 따라 사용할 수 있는 여러 기법이 있어요.
이 연습에서는 가상의 데이 스파를 살펴보겠습니다. 스파 매장은 2020년 6월 16일부터 20일까지 잠재 고객에게 쿠폰을 발송했고, 이 캠페인이 신규 방문을 유도했는지 확인하고 싶어 해요.
이번 연습에서는 가장 단순한 다운샘플링 기법 중 하나를 사용해 봅니다. 즉, DATETIME2 또는 DATETIME 데이터 형식을 시간 성분 없이 날짜만 가지는 DATE 형식으로 변환하는 방법이에요.
이 연습은 강의의 일부입니다
SQL Server에서의 시계열 분석
연습 안내
- 고객 방문 시작 시간을 일 단위 그레인으로 다운샘플링하고 결과를 집계하세요.
- SELECT 절에서 집계되지 않은 값은 모두 GROUP BY 절에 포함하세요(단,
AS Day같은 별칭은 제외).
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
SELECT
-- Downsample to a daily grain
-- Cast CustomerVisitStart as a date
___(dsv.CustomerVisitStart AS ___) AS Day,
SUM(dsv.AmenityUseInMinutes) AS AmenityUseInMinutes,
COUNT(1) AS NumberOfAttendees
FROM dbo.DaySpaVisit dsv
WHERE
dsv.CustomerVisitStart >= '2020-06-11'
AND dsv.CustomerVisitStart < '2020-06-23'
GROUP BY
-- When we use aggregation functions like SUM or COUNT,
-- we need to GROUP BY the non-aggregated columns
___(dsv.CustomerVisitStart AS ___)
ORDER BY
Day;