Porównywanie imion i nazwisk za pomocą SOUNDEX()
Nieprawidłowe ciągi znaków, takie jak 'Ilynois' zamiast 'Illinois', mogą powodować problemy podczas analizy danych. Dlatego tak ważne jest ich wykrywanie.
Analizując tabelę flight_statistics, zauważasz, że niektóre wartości w kolumnach statistician_name i statistician_surname są zapisane w różny sposób – na przykład Miriam Smith i Myriam Smyth. Obawiasz się, że podobnych różnic jest więcej, i chcesz je wszystkie sprawdzić.
Postanawiasz użyć funkcji SOUNDEX() do porównania imion i nazwisk statystyków. Jeśli wynik SOUNDEX() będzie taki sam, ale porównywane teksty będą się różnić, znajdziesz dane wymagające oczyszczenia.
To ćwiczenie jest częścią kursu
Czyszczenie danych w bazach danych SQL Server
Instrukcje do ćwiczenia
- Wybierz unikalne wartości kolumn
statistician_nameistatistician_surnamez tabeliS1. - Wykonaj złączenie wewnętrzne (INNER JOIN) tabeli
flight_statisticsjakoS2na podstawie podobnie brzmiących imion i nazwisk, używając funkcjiSOUNDEX(). - Odfiltruj wiersze, w których wartości kolumn
statistician_nameistatistician_surnameróżnią się od siebie odpowiednio w tabelachS1iS2.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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.___