Kleurnamen standaardiseren
In de vorige oefening is de functie DIFFERENCE() gebruikt om kleuren te identificeren die sterk lijken op onze gewenste weergave van de kleur GRAY. Deze aanpak behield echter een aantal records waarbij de waarde vehicle_color mogelijk wel of niet grijs is. Met name heeft de string GR (groen) dezelfde Soundex-code als de string GRAY. Gelukkig kunnen records met deze vehicle_color-waarden worden uitgesloten van de set records die moeten worden aangepast.
In deze oefening ken je een consistente grijze vehicle_color-waarde toe door vergelijkbare strings te identificeren die dezelfde kleur voorstellen. Opnieuw is de module fuzzystrmatch al voor je geïnstalleerd.
Deze oefening maakt deel uit van de cursus
Data opschonen in PostgreSQL-databases
Oefeninstructies
- Maak de
SET-clausule af om'GRAY'toe te wijzen als devehicle_colorvoor records met eenvehicle_color-waarde waarvan de Soundex-code overeenkomt met de Soundex-code voor'GRAY'. - Werk de
WHERE-clausule van de subquery bij zodat de geretourneerdesummons_number-waardensummons_number-waarden uit records met'GR'alsvehicle_color-waarde juist uitsluiten.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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
___ != ___
);