始める無料で始める

SOUNDEX() で名前を比較する

'Illinois''Ilynois' としてしまうような乱れた文字列は、データ分析の妨げになります。だからこそ、早めに検出することが重要です。

flight_statistics テーブルを分析すると、statistician_namestatistician_surname に表記ゆれがあることに気づきます。たとえば、Miriam SmithMyriam Smyth のように綴りが異なります。他にも同様の違いがありそうなので、これらの名前をすべて確認したいと考えています。

そこで、統計担当者の名前を SOUNDEX() で比較することにします。比較する2つの文字列が異なるのに、SOUNDEX() の結果が同じであれば、クレンジングが必要なデータを見つけられます。

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

SQL Server データベースでのデータクレンジング

コースを見る

演習の手順

  • S1 から statistician_namestatistician_surname 列の重複のない値を選択します。
  • SOUNDEX() を使って発音が似ている名と姓で結合し、flight_statistics テーブルを S2 として内部結合します。
  • S1S2 でそれぞれ statistician_namestatistician_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.___
コードを編集して実行