開始使用免費開始

使用 ROLLUP 產生摘要

當非量測屬性具有階層結構時,ROLLUP 運算子效果最好。否則,你可能會得到一些不直覺的彙總層級。

在這個情境中,我們希望彙總 IncidentRollup 資料表中的安全事件總數。管理階層想看到依行事曆年份、行事曆季度與行事曆月份組合彙總的資料。此外,他們也想分別看到「行事曆年份 + 行事曆季度」的彙總列,以及每個行事曆年份各自的彙總列。最後,他們還希望有一列總計。我們可以在一次作業中完成這些需求。

本練習屬於課程

SQL Server 的時間序列分析

檢視課程

練習說明

  • 完成 NumberOfIncidents 的定義,將每個區間內的事件數量加總。
  • 填寫 GROUP BY 區段,並包含 WITH ROLLUP 運算子。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

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;
編輯並執行程式碼