So sánh tên với DIFFERENCE()
Trong bài trước, bạn đã dùng SOUNDEX() để kiểm tra tên của các nhà thống kê trong bảng flight_statistics.
Lần này, bạn sẽ làm điều tương tự nhưng dùng hàm DIFFERENCE(). DIFFERENCE() trả về 4 khi hai chuỗi giống hệt hoặc rất giống nhau, và trả về 0 khi mức độ tương đồng rất thấp hoặc không có.
Nếu kết quả DIFFERENCE() giữa hai chuỗi là 4 nhưng phần văn bản bạn so sánh lại khác nhau, đó chính là dữ liệu bạn 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í danhS2trên các tên và họ phát âm tương tự ở những trường hợp màDIFFERENCEgiữa cột tương ứng của mỗi bảng bằng 4. - 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 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.___