始める無料で始める

SUM() でランニングトータル

ウィンドウ関数の強力な使い方の一つが、ランニングトータル(ある期間にわたる値の累積)を計算することです。ここでは、2019年7月について、各日付・各インシデント種別ごとの発生件数と、種別ごとの累計件数をウィンドウ関数で求めたいと考えています。ウィンドウ関数を使えば、この問題を1つのクエリで解決できます。

この演習はコースの一部です

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;
コードを編集して実行