Compararea numelor cu SOUNDEX()
Șirurile de caractere incorecte, cum ar fi 'Ilynois' în loc de 'Illinois', pot crea probleme la analiza datelor. De aceea este important să le detectezi.
Analizând tabela flight_statistics, observi că unele valori din coloanele statistician_name și statistician_surname sunt scrise în moduri diferite, de exemplu Miriam Smith și Myriam Smyth. Te temi că există mai multe astfel de diferențe, așa că vrei să verifici toate aceste nume.
Te gândești să compari numele statisticienilor folosind SOUNDEX(). Dacă rezultatul funcției SOUNDEX() este același, dar textele comparate sunt diferite, vei găsi datele care trebuie curățate.
Acest exercițiu face parte din cursul
Curățarea datelor în bazele de date SQL Server
Instrucțiuni pentru exercițiu
- Selectează valorile distincte din coloanele
statistician_nameșistatistician_surnamedinS1. - Aplică un inner join pe tabela
flight_statisticscaS2, pe baza numelor și prenumelor care sună similar, folosindSOUNDEX(). - Filtrează valorile unde coloanele
statistician_nameșistatistician_surnamedinS1șiS2sunt diferite una față de cealaltă.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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.___