SUM()으로 누계 계산하기
윈도 함수의 강력한 활용 중 하나는 누계 계산입니다. 즉, 특정 기간 동안 어떤 값이 시간이 지남에 따라 누적되는 합계를 구하는 것이죠. 여기서는 윈도 함수를 사용해 2019년 7월에 날짜별·사건 유형별로 발생한 사건 수와, 사건 유형별 전체 누적 사건 수를 계산하려고 합니다. 윈도 함수는 이 문제를 하나의 쿼리로 해결하도록 도와줍니다.
이 연습은 강의의 일부입니다
SQL Server에서의 시계열 분석
연습 안내
- 올바른 윈도 함수를 채워 넣으세요.
- 윈도 함수의
PARTITION BY절을 사건 유형 ID 기준으로 채우세요. - 윈도 함수의
ORDER BY절을 사건 일자(기본 오름차순) 기준으로 채우세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
SELECT
ir.IncidentDate,
ir.IncidentTypeID,
ir.NumberOfIncidents,
-- Get the total number of incidents
___(ir.NumberOfIncidents) OVER (
-- Do this for each incident type ID
PARTITION BY ir.___
-- Sort by the incident date
ORDER BY ir.___
) AS NumberOfIncidents
FROM dbo.IncidentRollup ir
INNER JOIN dbo.Calendar c
ON ir.IncidentDate = c.Date
WHERE
c.CalendarYear = 2019
AND c.CalendarMonth = 7
AND ir.IncidentTypeID IN (1, 2)
ORDER BY
ir.IncidentTypeID,
ir.IncidentDate;