So sánh tên bằng SOUNDEX()
Chuỗi bẩn như 'Ilynois' thay vì 'Illinois' có thể gây rắc rối khi phân tích dữ liệu. Vì vậy, việc phát hiện chúng là rất quan trọng.
Khi phân tích bảng flight_statistics, bạn nhận ra một số statistician_name và statistician_surname được ghi khác nhau, như Miriam Smith và Myriam Smyth. Bạn lo rằng còn nhiều khác biệt kiểu này nữa, nên muốn kiểm tra toàn bộ các tên đó.
Bạn nghĩ đến việc so sánh tên của các nhà thống kê bằng SOUNDEX(). Nếu kết quả SOUNDEX() giống nhau nhưng văn bản bạn so sánh lại khác, bạn sẽ tìm ra dữ liệu cần làm sạch.
Bài tập này là một phần của khóa học
Làm sạch dữ liệu trong cơ sở dữ liệu SQL Server
Hướng dẫn bài tập
- Chọn các giá trị khác nhau (distinct) của các cột
statistician_namevàstatistician_surnametừS1. - Thực hiện inner join bảng
flight_statisticsvới bí danhS2dựa trên tên và họ có âm tương tự bằngSOUNDEX(). - Loại bỏ các giá trị mà
statistician_namevàstatistician_surnamelần lượt khác nhau giữaS1vàS2.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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.___