1. 学ぶ
  2. /
  3. コース
  4. /
  5. SQL Serverで学ぶ時系列分析

Connected

演習

フィルタ付き集計の計算

特定のフィルタ条件に合致するイベントの発生回数を数えたい場合、SUM()、MIN()、MAX() といった集計関数や CASE 式を活用できます。たとえば、SUM(CASE WHEN ir.IncidentTypeID = 1 THEN 1 ELSE 0 END) は、インシデント種別 1 に該当するインシデントの件数を返します。各インシデント種別ごとに 1 つずつ SUM() を用意すれば、インシデント種別 ID を軸にデータをピボットしたことになります。

このシナリオでは、管理側から、インシデント種別ごとに「大きなインシデント」の日と「小さなインシデント」の日が何日あったかを報告するよう依頼されています。管理側の定義では、同一日に同一インシデント種別が 5 回を超えて発生した日は「大きなインシデント」の日、1~5 回であれば「小さなインシデント」の日とします。

指示

100 XP
  • SUM() で大きなインシデント日と小さなインシデント日の日数を計算できるよう、CASE 式を完成させてください。
  • CASE 式では、条件を満たす場合は 1、満たさない場合は 0 を返してください。
  • 列を参照する際は、ir.IncidentDate や it.IncidentType のように必ずエイリアスを付けて指定してください!