การกรองข้อมูลที่ต้องการด้วย HAVING

การใช้งานคำสั่งของ HAVING ใน SQL จะมีลักษณะคล้ายๆกับคำสั่ง WHERE คือเป็นการเลือกข้อมูลที่ต้องการ แต่ทั้งสองคำสั่งมีความแตกต่างกันที่

  • WHERE ใช้สำหรับการเลือกข้อมูลโดยกระทำกับทุกแถว
  • HAVING ใช้สำหรับกรองข้อมูลที่ถูกจัดกลุ่มโดยคำสั่ง GROUP BY
SELECT member_id,book_id FROM table_name WHERE member_id=1
member_id book_id
1 1
1 1
1 1
1 2
1 2
1 3
เพิ่มคำสั่ง GROUP BY เพื่อนับจำนวนครั้งของหนังสือที่ยืม
SELECT member_id,book_id,COUNT(*) FROM table_name WHERE member_id=1 GROUP BY book_id
member_id book_id COUNT(*)
1 1 3
1 2 2
1 3 1
ใช้คำสั่ง HAVING เพื่อกำหนดเงื่อนไขต้องการรายชื่อหนังสือที่ถูกยืมมากกว่า 1 ครั้ง
SELECT member_id,book_id,COUNT(*) FROM table_name WHERE member_id=1 GROUP BY book_id HAVING COUNT(*)>1
member_id book_id COUNT(*)
1 1 3
1 2 2
ผู้เขียน goragod โพสต์เมื่อ 01 เม.ย. 2555 เปิดดู 24,094 ป้ายกำกับ SQL
^