ROLLUP으로 요약 생성하기
ROLLUP 연산자는 비측정(속성) 열들이 계층 구조를 가질 때 가장 효과적이에요. 그렇지 않으면 직관적이지 않은 이상한 집계 수준이 생길 수 있어요.
이 시나리오에서는 IncidentRollup 테이블에서 보안 사고의 총 건수를 집계하려고 해요. 경영진은 달력 연도, 달력 분기, 달력 월의 조합으로 집계된 데이터를 보고 싶어 합니다. 추가로, 달력 연도+달력 분기 수준의 별도 집계 행과 각 달력 연도별 별도 집계 행도 원해요. 마지막으로 전체 합계를 나타내는 한 줄이 더 필요합니다. 이 모든 것을 한 번의 연산으로 처리할 수 있어요.
이 연습은 강의의 일부입니다
SQL Server에서의 시계열 분석
연습 안내
- 각 구간의 사고 건수를 합산해
NumberOfIncidents정의를 완성하세요. WITH ROLLUP연산자를 포함해GROUP BY절을 채우세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
SELECT
c.CalendarYear,
c.CalendarQuarterName,
c.CalendarMonth,
-- Include the sum of incidents by day over each range
___(ir.___) AS NumberOfIncidents
FROM dbo.IncidentRollup ir
INNER JOIN dbo.Calendar c
ON ir.IncidentDate = c.Date
WHERE
ir.IncidentTypeID = 2
GROUP BY
-- GROUP BY needs to include all non-aggregated columns
c.___,
c.___,
c.___
-- Fill in your grouping operator
WITH ___
ORDER BY
c.CalendarYear,
c.CalendarQuarterName,
c.CalendarMonth;