按一天中的时间对违停记录进行分类
有人担心一天中开具违停罚单的时间分布不均。您的任务是将违停记录与开具时段关联。您认为最简单的方法是创建一个名为 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;