開始使用免費開始

依一天中的時段分類停車違規

有人提出疑慮,認為停車違規的開單時間在一天當中分布不均。你的任務是將每筆停車違規對應到實際的開單時段。你決定用最簡單的方法:新增一個名為 morning 的欄位。若違規是在早上(12:00 AM 到 11:59 AM 之間)開立,這個欄位填入整數 1;否則填入整數 0。開單時間記錄在 parking_violation 資料表的 violation_time 欄位。此欄位的格式為 4 個數字,後面接一個 A(代表 AM)或 P(代表 PM)。

在本練習中,你將透過比對早上時段的 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;
編輯並執行程式碼