Klassificera parkeringsöverträdelser efter tid på dygnet
Det har framförts farhågor om att parkeringsböter inte utfärdas jämnt fördelade över dygnet. Du har fått i uppgift att koppla parkeringsöverträdelser till den tid på dygnet då de utfärdades. Du bedömer att det enklaste tillvägagångssättet är att skapa en ny kolumn med namnet morning. Det här fältet fylls med heltalet 1 om överträdelsen utfärdades på förmiddagen (mellan 00:00 och 11:59), och med heltalet 0 annars. Tidpunkten för utfärdandet registreras i kolumnen violation_time i tabellen parking_violation. Kolumnen består av 4 siffror följda av ett A (för AM) eller P (för PM).
I den här övningen fyller du i kolumnen morning genom att matcha mönster för violation_time-värden som inträffar på förmiddagen.
Den här övningen är en del av kursen
Datarensning i PostgreSQL-databaser
Övningsinstruktioner
- Använd det reguljära uttryckets mönster
'\d\d\d\dA'i underfrågan för att matchaviolation_time-värden som består av 4 på varandra följande siffror (\d) följda av ett versaltA. - Redigera
CASE-satsen så att kolumnenmorningfylls med1(heltal utan citattecken) när det reguljära uttrycket matchas. - Redigera
CASE-satsen så att kolumnenmorningfylls med0(heltal utan citattecken) när det reguljära uttrycket inte matchas.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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;