Devdit
 

SQL ดึงข้อมูลที่ซ้ำกัน ด้วย GROUP BY และ HAVING

8.2K

SQL ดึงข้อมูลที่ซ้ำกัน ด้วย GROUP BY และ HAVING บทความนี้สอนเขียนคำสั่ง SQL เพื่อดึงข้อมูลที่ซ้ำกันจากตาราง โดยใช้คำสั่ง GROUP BY เพื่อรวมข้อมูลที่ซ้ำกัน และ HAVING เพื่อสร้างเงื่อนไขการแสดงผล สามารถเขียนคำสั่งได้ดังนี้

 

ตัวอย่าง ข้อมูลภายในตาราง test

+----+------+
| id | name |
+----+------+
|  1 | A    |
|  2 | B    |
|  3 | C    |
|  4 | A    |
|  5 | A    |
|  6 | C    |
+----+------+

 

ตัวอย่าง SQL ดึงข้อมูลที่ซ้ำกัน ด้วย GROUP BY และ HAVING

SELECT * FROM test GROUP BY name HAVING COUNT(name) > 1;

ผลลัพธ์

+----+------+
| id | name |
+----+------+
|  1 | A    |
|  3 | C    |
+----+------+
2 row in set (0.000 sec)

คำอธิบาย

SQL ดึงข้อมูลที่ซ้ำกัน จากตัวอย่างข้อมูลตาราง test มีข้อมูลที่ซ้ำกันคือ A และ C ของ column name สามารถอธิบายการเขียนคำสั่ง SQL ได้ดังนี้

1. SELECT * FROM test คือ ดึงข้อมูลทุก columns จากตาราง test

2. GROUP BY name คือ รวมข้อมูลจาก column name ที่ซ้ำกันให้เหลือ column เดียว เช่น A ซ้ำกัน 2 ข้อมูลก็จะเหลือ A ข้อมูลเดียว

3. HAVING COUNT(name) > 1 คือ กำหนดเงื่อนไขให้แสดงเฉพาะข้อมูลที่ซ้ำ โดยการนับ column name ถ้านับแล้วมีค่ามากกว่า 1 คือซ้ำ ให้แสดงข้อมูลออกมา

แก้ไข 1 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ