이동 평균 계산하기
처음부터 지금까지의 누계를 보는 대신, 경영진은 최근 7일간—즉, 6일 전부터 오늘까지—발생한 사건 수의 평균을 보고 싶어 합니다. 이처럼 쿼리 진행에 따라 변하는 지정된 프레임에서 계산하는 평균을 이동 평균이라고 해요.
SQL Server의 윈도 함수는 시간 범위를 직접 지정할 수 없으므로, 하루에 한 행씩 있다고 가정하고 ROWS 절을 사용해야 합니다.
이 연습은 강의의 일부입니다
SQL Server에서의 시계열 분석
연습 안내
- 6일 전부터 오늘(현재 행)까지의 범위로 이동 평균을 계산하는 적절한 윈도 함수를 채워 넣으세요.
ROWS절, 프레임의 preceding, 프레임의 following을 포함하여 윈도 프레임을 완성하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
SELECT
ir.IncidentDate,
ir.IncidentTypeID,
ir.NumberOfIncidents,
-- Fill in the correct window function
___(ir.NumberOfIncidents) OVER (
PARTITION BY ir.IncidentTypeID
ORDER BY ir.IncidentDate
-- Fill in the three parts of the window frame
___ BETWEEN ___ AND ___
) AS MeanNumberOfIncidents
FROM dbo.IncidentRollup ir
INNER JOIN dbo.Calendar c
ON ir.IncidentDate = c.Date
WHERE
c.CalendarYear = 2019
AND c.CalendarMonth IN (7, 8)
AND ir.IncidentTypeID = 1
ORDER BY
ir.IncidentTypeID,
ir.IncidentDate;