Parkeerovertredingen indelen op tijdstip van de dag
Er zijn zorgen geuit dat parkeerovertredingen niet gelijkmatig over de dag worden uitgeschreven. Jij hebt de taak gekregen om parkeerovertredingen te koppelen aan het tijdstip van uitschrijven. Je bepaalt dat de eenvoudigste aanpak is om een nieuwe kolom morning te maken. Dit veld krijgt (het geheel getal) 1 als de overtreding in de ochtend is uitgeschreven (tussen 12:00 AM en 11:59 AM), en (het geheel getal) 0 in alle andere gevallen. Het tijdstip van uitschrijven staat in de kolom violation_time van de tabel parking_violation. Deze kolom bestaat uit 4 cijfers gevolgd door een A (voor AM) of P (voor PM).
In deze oefening vul je de kolom morning door patronen te matchen voor violation_time-waarden die in de ochtend voorkomen.
Deze oefening maakt deel uit van de cursus
Data opschonen in PostgreSQL-databases
Oefeninstructies
- Gebruik het reguliere-expressiepatroon
'\d\d\d\dA'in de subquery omviolation_time-waarden te matchen die bestaan uit 4 opeenvolgende cijfers (\d) gevolgd door een hoofdletterA. - Pas de
CASE-clausule aan om de kolommorningte vullen met1(geheel getal zonder aanhalingstekens) wanneer de reguliere expressie overeenkomt. - Pas de
CASE-clausule aan om de kolommorningte vullen met0(geheel getal zonder aanhalingstekens) wanneer de reguliere expressie niet overeenkomt.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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;