Порівняння імен за допомогою DIFFERENCE()
У попередній вправі ви використовували SOUNDEX() для перевірки імен статистиків з таблиці flight_statistics.
Тепер ви хочете зробити щось подібне, але за допомогою функції DIFFERENCE(). DIFFERENCE() повертає 4, коли між двома рядками є сильна або ідентична подібність, і 0, коли подібність відсутня або мінімальна.
Якщо результат DIFFERENCE() між двома рядками дорівнює 4, але тексти, які ви порівнюєте, різні, це означає, що ви знайшли дані, які потрібно очистити.
Ця вправа є частиною курсу
Очищення даних у базах даних SQL Server
Інструкції до вправи
- Виберіть унікальні значення стовпців
statistician_nameіstatistician_surnameзS1. - Виконайте INNER JOIN таблиці
flight_statisticsякS2за схоже вимовними іменами та прізвищами в тих випадках, колиDIFFERENCEміж відповідними стовпцями кожної таблиці дорівнює 4. - Відфільтруйте значення, де стовпці
statistician_nameіstatistician_surnameуS1таS2відповідно відрізняються один від одного.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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.___