Classer les infractions de stationnement selon le moment de la journée
Certaines inquiétudes ont été soulevées quant au fait que les PV de stationnement ne seraient pas délivrés de manière uniforme tout au long de la journée. Votre mission est d’associer chaque infraction à l’heure de délivrance. Vous décidez que la façon la plus simple de procéder est de créer une nouvelle colonne appelée morning. Ce champ prendra la valeur (entier) 1 si l’infraction a été dressée le matin (entre 12:00 AM et 11:59 AM) et la valeur (entier) 0 sinon. L’heure de délivrance est enregistrée dans la colonne violation_time de la table parking_violation. Cette colonne contient 4 chiffres suivis d’un A (pour AM) ou d’un P (pour PM).
Dans cet exercice, vous allez renseigner la colonne morning en faisant correspondre les motifs des violation_time qui se produisent le matin.
Cet exercice fait partie du cours
Nettoyer des données dans des bases PostgreSQL
Instructions
- Utilisez le motif d’expression régulière
'\d\d\d\dA'dans la sous-requête pour faire correspondre les valeurs deviolation_timecomposées de 4 chiffres consécutifs (\d) suivis d’unAmajuscule. - Modifiez la clause
CASEpour renseigner la colonnemorningavec1(entier sans guillemets) lorsque l’expression régulière correspond. - Modifiez la clause
CASEpour renseigner la colonnemorningavec0(entier sans guillemets) lorsque l’expression régulière ne correspond pas.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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;