Порівняння імен за допомогою SOUNDEX()
Брудні рядки на кшталт 'Ilynois' замість 'Illinois' можуть спричиняти проблеми під час аналізу даних. Тому важливо виявляти такі помилки.
Аналізуючи таблицю flight_statistics, ви помічаєте, що деякі statistician_name і statistician_surname записані по‑різному, наприклад, Miriam Smith і Myriam Smyth. Ви побоюєтеся, що подібних відмінностей більше, тож хочете перевірити всі ці імена.
Ви плануєте порівняти імена статистиків за допомогою SOUNDEX(). Якщо результат SOUNDEX() збігається, але порівнювані тексти різні, ви знайдете дані, які потрібно почистити.
Ця вправа є частиною курсу
Очищення даних у базах даних SQL Server
Інструкції до вправи
- Виберіть унікальні значення стовпців
statistician_nameіstatistician_surnameзS1. - Виконайте INNER JOIN таблиці
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.___