Сравнение имён с помощью SOUNDEX()
Ошибки в строках — например, 'Ilynois' вместо 'Illinois' — могут привести к проблемам при анализе данных. Поэтому важно уметь их выявлять.
При анализе таблицы flight_statistics вы замечаете, что некоторые значения в столбцах statistician_name и statistician_surname записаны по-разному: например, Miriam Smith и Myriam Smyth. Вы опасаетесь, что подобных расхождений может быть больше, и хотите проверить все имена.
Для этого вы решаете сравнить имена статистиков с помощью SOUNDEX(). Если результат SOUNDEX() совпадает, а сами строки различаются, — значит, вы нашли данные, требующие очистки.
Это упражнение является частью курса
Очистка данных в базах данных SQL Server
Инструкции к упражнению
- Выберите уникальные значения столбцов
statistician_nameиstatistician_surnameизS1. - Выполните внутреннее объединение таблицы
flight_statisticsпод псевдонимомS2по похоже звучащим именам и фамилиям с помощьюSOUNDEX(). - Отфильтруйте строки, в которых значения столбцов
statistician_nameиstatistician_surnameвS1иS2соответственно отличаются друг от друга.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
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.___