CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Complétez la clause SET pour attribuer 'GRAY' à vehicle_color pour les enregistrements dont la valeur vehicle_color a un code Soundex correspondant au code Soundex de 'GRAY'.
  • Modifiez la clause WHERE de la sous-requête afin que les valeurs summons_number retournées excluent les valeurs summons_number provenant des enregistrements dont la valeur vehicle_color est '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
        ___ != ___
);
Modifier et exécuter le code