開始使用免費開始

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