始める無料で始める

過去期間と将来期間を参照する

LAG()LEAD() のウィンドウ関数を使うと、それぞれ時間方向に過去・未来を参照できます。これにより、1 本のシンプルなクエリで期間ごとのデータを比較できます。

この演習では、2019 年 7 月のうち、7 月 2 日から 7 月 31 日までの期間について、インシデント種別 1 と 2 の日別セキュリティインシデント数を比較します。

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

SQL Serverで学ぶ時系列分析

コースを見る

演習の手順

  • インシデント種別 ID でパーティション分割し、インシデント日付で並べ替えて、前日のインシデント数を返すウィンドウ関数を補完してください。
  • インシデント種別 ID でパーティション分割し、インシデント日付で並べ替えて、翌日のインシデント数を返すウィンドウ関数を補完してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

SELECT
	ir.IncidentDate,
	ir.IncidentTypeID,
    -- Get the prior day's number of incidents
	___(ir.___, ___) OVER (
      	-- Partition by incident type ID
		PARTITION BY ir.___
      	-- Order by incident date
		ORDER BY ir.___
	) AS PriorDayIncidents,
	ir.NumberOfIncidents AS CurrentDayIncidents,
    -- Get the next day's number of incidents
	___(ir.___, ___) OVER (
      	-- Partition by incident type ID
		PARTITION BY ir.___
      	-- Order by incident date
		ORDER BY ir.___
	) AS NextDayIncidents
FROM dbo.IncidentRollup ir
WHERE
	ir.IncidentDate >= '2019-07-02'
	AND ir.IncidentDate <= '2019-07-31'
	AND ir.IncidentTypeID IN (1, 2)
ORDER BY
	ir.IncidentTypeID,
	ir.IncidentDate;
コードを編集して実行