Классификация нарушений правил парковки по времени суток
Поступили жалобы на то, что штрафы за нарушение правил парковки выписываются неравномерно в течение дня. Вам поручено связать каждое нарушение со временем его фиксации. Вы решаете создать новый столбец morning — это наиболее простой способ решить задачу. Столбец будет содержать целое число 1, если нарушение зафиксировано в первой половине дня (с 00:00 до 11:59), и целое число 0 в остальных случаях. Время фиксации нарушения хранится в столбце violation_time таблицы parking_violation. Значения в этом столбце состоят из 4 цифр, за которыми следует буква A (для AM) или P (для PM).
В этом упражнении вы заполните столбец morning, сопоставляя шаблоны для значений violation_time, соответствующих первой половине дня.
Это упражнение является частью курса
Очистка данных в базах данных PostgreSQL
Инструкции к упражнению
- Используйте шаблон регулярного выражения
'\d\d\d\dA'в подзапросе, чтобы найти значенияviolation_time, состоящие из 4 последовательных цифр (\d), за которыми следует заглавная букваA. - Измените конструкцию
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;