HAVING
hoạt động trên hàng tóm tắt - WHERE
đang hoạt động trên toàn bộ bảng trước GROUP BY
được áp dụng. (Bạn không thể đặt GROUP BY
sang một bên, HAVING
là một mệnh đề được dành riêng để sử dụng với GROUP BY
- loại bỏ GROUP BY
không thay đổi hành động ngầm diễn ra ở hậu trường).
Cũng cần lưu ý rằng vì điều này, WHERE
có thể sử dụng chỉ mục trong khi HAVING
không thể. (Trong các tập kết quả chưa được nhóm siêu nhỏ, về mặt lý thuyết, bạn có thể sử dụng một chỉ mục cho HAVING
, nhưng tôi chưa bao giờ thấy trình tối ưu hóa truy vấn thực sự được triển khai theo cách này).