Porovnávání jmen pomocí SOUNDEX()
Chybně zapsané řetězce jako 'Ilynois' místo 'Illinois' mohou při analýze dat způsobit problémy. Proto je důležité je odhalit.
Při analýze tabulky flight_statistics zjistíš, že některá jména a příjmení ve sloupcích statistician_name a statistician_surname jsou zapsána různými způsoby – například Miriam Smith a Myriam Smyth. Obáváš se, že podobných rozdílů je víc, a chceš všechna tato jména zkontrolovat.
Napadne tě porovnat jména statistiků pomocí funkce SOUNDEX(). Pokud funkce SOUNDEX() vrátí stejný výsledek, ale porovnávané texty se liší, najdeš data, která je potřeba vyčistit.
Toto cvičení je součástí kurzu
Cleaning Data in SQL Server Databases
Pokyny k cvičení
- Vyber unikátní hodnoty sloupců
statistician_nameastatistician_surnamez tabulkyS1. - Proveď inner join tabulky
flight_statisticsjakoS2na základě podobně znějících křestních jmen a příjmení pomocí funkceSOUNDEX(). - Odfiltruj záznamy, kde se hodnoty sloupců
statistician_nameastatistician_surnamev tabulkáchS1aS2navzájem liší.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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.___