บทความนี้สาธิตการหาคู่ค่าที่ซ้ำกัน (Duplicate Pairs) ระหว่างสองคอลัมน์ (Id, FirstName) โดยใช้ GROUP BY สองคอลัมน์ ร่วมกับ HAVING COUNT(*) = 2
สร้างตารางและข้อมูลทดสอบ
mysql> CREATE TABLE DemoTable748 (Id INT, FirstName VARCHAR(100));
Query OK, 0 rows affected (0.46 sec)
mysql> INSERT INTO DemoTable748 VALUES(100, 'John');
mysql> INSERT INTO DemoTable748 VALUES(100, 'Sam');
mysql> INSERT INTO DemoTable748 VALUES(200, 'Carol');
mysql> INSERT INTO DemoTable748 VALUES(200, 'Carol'); -- Duplicate Pair
mysql> INSERT INTO DemoTable748 VALUES(300, 'Mike');
mysql> INSERT INTO DemoTable748 VALUES(300, 'Sam');
คิวรีหาคู่ (Id, FirstName) ที่ซ้ำกัน 2 ครั้ง
mysql> SELECT Id FROM DemoTable748
GROUP BY Id, FirstName
HAVING COUNT(*) = 2;
ผลลัพธ์
+------+
| Id |
+------+
| 200 |
+------+
คำอธิบาย:
GROUP BY Id, FirstName- จัดกลุ่มตามคู่ค่าทั้งสองคอลัมน์HAVING COUNT(*) = 2- กรองเฉพาะกลุ่มที่มี 2 แถวพอดี (Duplicate Pair)- คู่ (200, 'Carol') ปรากฏ 2 ครั้ง → ผ่านเงื่อนไข
- คู่อื่นๆ ปรากฏ 1 ครั้ง → ไม่ผ่าน
การประยุกต์: เปลี่ยน = 2 เป็น > 1 เพื่อหาคู่ที่ซ้ำอย่างน้อย 1 ครั้ง (2 ครั้งขึ้นไป)