ใช้ Subquery ด้วย GROUP BY ... HAVING COUNT(*) > 1 เพื่อหาค่าที่ซ้ำ แล้ว IN เพื่อดึงแถวทั้งหมดที่มีค่านั้น
สร้างตาราง DuplicateFound (ID, Name, Location) และเพิ่มข้อมูล 5 แถว (US 3 แถว, UK 2 แถว)
แสดงแถวทั้งหมดที่ Location ซ้ำ (มีมากกว่า 1)
SELECT * FROM DuplicateFound WHERE location IN (SELECT location FROM DuplicateFound GROUP BY location HAVING COUNT(location) > 1) ORDER BY location;
ผลลัพธ์: แสดง 5 แถว จัดกลุ่ม UK ก่อน แล้ว US
แสดงเฉพาะค่าที่ซ้ำ (Distinct duplicate values)
SELECT Name, location FROM DuplicateFound GROUP BY location HAVING COUNT(location) > 1;
ผลลัพธ์: แสดงตัวแทน 1 ชื่อต่อ Location ที่ซ้ำ (John สำหรับ US, Bob สำหรับ UK)
ประยุกต์: ลบข้อมูลซ้ำ, ทำความสะอาดข้อมูล, รายงานค่าซ้ำ