시작하기무료로 시작하기

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;
코드 편집 및 실행