Uniformiser les noms de couleurs
Dans l'exercice précédent, la fonction DIFFERENCE() a servi à repérer les couleurs qui correspondaient de près à la représentation souhaitée de la couleur GRAY. Toutefois, cette approche conservait un certain nombre d'enregistrements où la valeur vehicle_color pouvait être grise… ou non. Plus précisément, la chaîne GR (vert) a le même code Soundex que la chaîne GRAY. Heureusement, on peut exclure ces valeurs de vehicle_color de l'ensemble des enregistrements à modifier.
Dans cet exercice, vous attribuerez une valeur vehicle_color grise uniforme en repérant les chaînes similaires qui représentent la même couleur. Encore une fois, le module fuzzystrmatch a déjà été installé pour vous.
Cette activité fait partie du cours
Nettoyer des données dans des bases de données PostgreSQL
Instructions de l’exercice
- Complétez la clause
SETpour attribuer'GRAY'àvehicle_colorpour les enregistrements dont la valeurvehicle_colora un code Soundex correspondant au code Soundex de'GRAY'. - Modifiez la clause
WHEREde la sous-requête afin que les valeurssummons_numberretournées excluent les valeurssummons_numberprovenant des enregistrements dont la valeurvehicle_colorest'GR'.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
UPDATE
parking_violation
SET
-- Update vehicle_color to `GRAY`
___ = ___
WHERE
summons_number IN (
SELECT
summons_number
FROM
parking_violation
WHERE
DIFFERENCE(vehicle_color, 'GRAY') = 4 AND
-- Filter out records that have GR as vehicle_color
___ != ___
);