시작하기무료로 시작하기

시간대별 주차 위반 분류하기

하루 중 특정 시간대에만 주차 위반이 고르게 단속되지 않는다는 우려가 제기되었습니다. 발급 시각에 따라 주차 위반을 시간대와 연결하라는 과제가 주어졌습니다. 이를 가장 간단하게 수행하는 방법으로 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 값을 매칭하세요.
  • 정규식이 일치할 때 따옴표 없이 정수 1morning 열을 채우도록 CASE 절을 수정하세요.
  • 정규식이 일치하지 않을 때 따옴표 없이 정수 0으로 morning 열을 채우도록 CASE 절을 수정하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

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;
코드 편집 및 실행