Bắt đầu ngayBắt đầu miễn phí

Phân loại vi phạm đỗ xe theo thời điểm trong ngày

Có ý kiến cho rằng việc lập biên bản vi phạm đỗ xe không diễn ra đồng đều trong suốt cả ngày. Bạn được giao nhiệm vụ gắn mỗi vi phạm đỗ xe với thời điểm trong ngày khi biên bản được lập. Bạn xác định cách đơn giản nhất là tạo một cột mới tên morning. Trường này sẽ nhận (số nguyên) 1 nếu vi phạm được lập vào buổi sáng (từ 12:00 AM đến 11:59 AM), và (số nguyên) 0 nếu không. Thời điểm lập biên bản được ghi trong cột violation_time của bảng parking_violation. Cột này gồm 4 chữ số theo sau là A (cho AM) hoặc P (cho PM).

Trong bài tập này, bạn sẽ điền dữ liệu cho cột morning bằng cách khớp các mẫu cho những violation_time xảy ra vào buổi sáng.

Bài tập này là một phần của khóa học

Làm sạch dữ liệu trong cơ sở dữ liệu PostgreSQL

Xem khóa học

Hướng dẫn bài tập

  • Dùng biểu thức chính quy '\d\d\d\dA' trong truy vấn con để khớp các giá trị violation_time gồm 4 chữ số liên tiếp (\d) theo sau là chữ A in hoa.
  • Chỉnh mệnh đề CASE để điền cột morning bằng 1 (số nguyên, không có ngoặc kép) khi biểu thức chính quy khớp.
  • Chỉnh mệnh đề CASE để điền cột morning bằng 0 (số nguyên, không có ngoặc kép) khi biểu thức chính quy không khớp.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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;
Chỉnh sửa và Chạy Mã