Porovnávání jmen pomocí DIFFERENCE()
V předchozím cvičení jsi použil/a SOUNDEX() ke kontrole jmen statistiků z tabulky flight_statistics.
Tentokrát chceš udělat něco podobného, ale s využitím funkce DIFFERENCE(). Funkce DIFFERENCE() vrátí hodnotu 4, pokud jsou dva řetězce podobné nebo totožné, a hodnotu 0, pokud si jsou velmi málo podobné nebo nepodobné vůbec.
Pokud DIFFERENCE() vrátí pro dva řetězce hodnotu 4, ale porovnávané texty jsou různé, najdeš tím 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 jedinečné hodnoty sloupců
statistician_nameastatistician_surnamezS1. - Proveď inner join tabulky
flight_statisticsjakoS2na základě podobně znějících křestních jmen a příjmení — konkrétně u záznamů, kde je hodnotaDIFFERENCEmezi příslušnými sloupci obou tabulek rovna 4. - Vyfiltruj záznamy, kde se sloupce
statistician_nameastatistician_surnamevS1aS2navzá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 surnames of the statisticians
DISTINCT S1.___, S1.___
-- Join flight_statistics with itself
FROM ___ S1 INNER JOIN ___ S2
-- The DIFFERENCE of the first name and surname has to be equals to 4
ON ___(S1.___, S2.___) = 4
AND ___(S1.___, S2.___) = 4
-- The texts of the first name or the texts of the surname have to be different
WHERE S1.___ <> S2.___
OR S1.___ <> S2.___