以 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;