始める無料で始める

色名の標準化

前の演習では、DIFFERENCE() 関数を使って、目的の色表記 GRAY に近い色を特定しました。しかしこの方法だと、vehicle_color がグレーかどうか曖昧なレコードがいくつか残ってしまいます。具体的には、文字列 GR(green)が文字列 GRAY と同じ Soundex コードを持つためです。幸い、こうした vehicle_color 値を持つレコードは、変更対象から除外できます。

この演習では、同じ色を表す類似文字列を見つけて、vehicle_color を一貫してグレーに統一します。今回も fuzzystrmatch モジュールはすでにインストール済みです。

この演習はコースの一部です

PostgreSQLデータベースで学ぶデータクレンジング

コースを見る

演習の手順

  • SET 句を完成させ、'GRAY' の Soundex コードと一致する Soundex コードを持つ vehicle_color のレコードに対して、vehicle_color'GRAY' に設定してください。
  • サブクエリの WHERE 句を更新し、vehicle_color'GR' のレコードの summons_number は返さない(=除外する)ようにしてください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

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
        ___ != ___
);
コードを編集して実行