始める無料で始める

時間帯別に駐車違反を分類する

一日の中で駐車違反の発行が均等ではないのでは、という指摘が出ています。そこで、違反が発行された時間帯を駐車違反にひも付けることになりました。最も簡単な方法として、morning という新しい列を作成すると決めました。違反が午前中(12:00 AM〜11:59 AM)に発行された場合は(整数の)1、それ以外は(整数の)0 を格納します。発行時刻は parking_violation テーブルの violation_time 列に記録されています。この列は4桁の数字に続いて AAM)または PPM)が付く形式です。

この演習では、午前中に発生した violation_time のパターンに一致させて、morning 列を埋めていきます。

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

PostgreSQLデータベースで学ぶデータクレンジング

コースを見る

演習の手順

  • サブクエリで正規表現パターン '\d\d\d\dA' を使い、4つの連続した数字(\d)の後に大文字の A が続く violation_time の値にマッチさせます。
  • 正規表現に一致した場合、CASE 句を編集して morning 列に 1(クォートなしの整数)を格納します。
  • 正規表現に一致しなかった場合、CASE 句を編集して morning 列に 0(クォートなしの整数)を格納します。

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

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

SELECT 
	summons_number, 
    CASE WHEN 
    	summons_number IN (
          SELECT 
  			summons_number 
  		  FROM 
  			parking_violation 
  		  WHERE 
            -- Match violation_time for morning values
  			___ SIMILAR TO ___
    	)
        -- Value when pattern matched
        THEN ___ 
        -- Value when pattern not matched
        ELSE ___ 
    END AS morning 
FROM 
	parking_violation;
コードを編集して実行