SOUNDEX() で名前を比較する
'Illinois' を 'Ilynois' としてしまうような乱れた文字列は、データ分析の妨げになります。だからこそ、早めに検出することが重要です。
flight_statistics テーブルを分析すると、statistician_name と statistician_surname に表記ゆれがあることに気づきます。たとえば、Miriam Smith と Myriam Smyth のように綴りが異なります。他にも同様の違いがありそうなので、これらの名前をすべて確認したいと考えています。
そこで、統計担当者の名前を SOUNDEX() で比較することにします。比較する2つの文字列が異なるのに、SOUNDEX() の結果が同じであれば、クレンジングが必要なデータを見つけられます。
この演習はコースの一部です
SQL Server データベースでのデータクレンジング
演習の手順
S1からstatistician_nameとstatistician_surname列の重複のない値を選択します。SOUNDEX()を使って発音が似ている名と姓で結合し、flight_statisticsテーブルをS2として内部結合します。S1とS2でそれぞれstatistician_nameとstatistician_surnameが異なる行だけに絞り込みます。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
SELECT
-- First name and surname of the statisticians
DISTINCT S1.___, S1.___
-- Join flight_statistics with itself
FROM ___ S1 INNER JOIN ___ S2
-- The SOUNDEX result of the first name and surname have to be the same
ON ___(S1.___) = ___(S2.___)
AND ___(S1.___) = ___(S2.___)
-- The texts of the first name or the texts of the surname have to be different
WHERE S1.___ <> S2.___
OR S1.___ <> S2.___