시작하기무료로 시작하기

GROUPING SETS로 사용자 지정 그룹 만들기

GROUPING SETS 연산자를 사용하면 원하는 집계 수준을 정확히 지정할 수 있어요.

이번 시나리오에서 경영진은 ROLLUP과 비슷하지만 정보가 너무 많지 않은 결과를 원해요. 계층의 모든 집계 수준을 모두 보여 주는 대신, 세 가지 수준만 보고자 해요: 전체 합계, 연도별, 그리고 연도-분기-월별이에요.

이 연습은 강의의 일부입니다

SQL Server에서의 시계열 분석

강의 보기

연습 안내

  • GROUP BY 구문을 GROUPING SETS로 작성하세요. 다음을 보고자 합니다:
  • 연도, 분기, 월의 각 조합마다 한 행(해당 계층 순서)
  • 연도마다 한 행
  • 전체 합계에 해당하는 한 행(즉, 공백 그룹)

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

SELECT
	c.CalendarYear,
	c.CalendarQuarterName,
	c.CalendarMonth,
	SUM(ir.NumberOfIncidents) AS NumberOfIncidents
FROM dbo.IncidentRollup ir
	INNER JOIN dbo.Calendar c
		ON ir.IncidentDate = c.Date
WHERE
	ir.IncidentTypeID = 2
-- Fill in your grouping operator here
GROUP BY ___ ___
(
  	-- Group in hierarchical order:  calendar year,
    -- calendar quarter name, calendar month
	(___, ___, ___),
  	-- Group by calendar year
	(___),
    -- This remains blank; it gives us the grand total
	()
)
ORDER BY
	c.CalendarYear,
	c.CalendarQuarterName,
	c.CalendarMonth;
코드 편집 및 실행