การกรองข้อมูลที่ต้องการด้วย 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 |
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 |
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 |