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