เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

เปรียบเทียบชื่อด้วย 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.___
แก้ไขและรันโค้ด