เมื่อเราทำการหาผลสรุปด้วย function ต่าง ๆ เรียบร้อยแล้ว แล้วเราต้องการกรองข้อมูลที่ได้จากฟังก์ชันต่าง ๆ เราจะต้องทำการกำหนดเงื่อนไขโดยการใช้คำสั่ง HAVING ซึ่งจะมีลักษณะเหมือนกับคำสั่ง WHERE แต่จะแตกต่างกันตรงที่
ผมจะแสดงตัวอย่างการทำงานของคำสั่ง WHERE, GROUP BY และ HAVING ให้ดูทีละตัวอย่างนะครับดังนี้
SELECT title, salary FROM personnel WHERE dept_id = 7;
| title | salary |
|---|---|
| Stock clerk | 28000.00 |
| Programmer | 41000.00 |
| Stock clerk | 29000.00 |
| Programmer | 48000.00 |
| Secretary | 33000.00 |
| Accountant | 40000.00 |
SELECT title, COUNT(*), AVG(salary) FROM personnel WHERE dept_id = 7 GROUP BY title;
| title | COUNT(*) | AVG(salary) |
|---|---|---|
| Accountant | 1 | 40000.000000 |
| Programmer | 2 | 44500.000000 |
| Secretary | 1 | 33000.000000 |
| Stock clerk | 2 | 28500.000000 |
SELECT title, salary, COUNT(*), AVG(salary) FROM personnel WHERE dept_id = 7 GROUP BY title HAVING COUNT(*) > 1;
| title | salary | COUNT(*) | AVG(salary) |
|---|---|---|---|
| Programmer | 41000.00 | 2 | 44500.000000 |
| Stock clerk | 28000.00 | 2 | 28500.000000 |
ผู้สนับสนุน