HAVING – Mệnh đề
Nội dung
1. Mô tả
- Mệnh đề HAVING được dùng kết hợp với mệnh đề GROUP BY để lọc bớt dữ liệu trên các nhóm. (Không thể sử dụng mệnh đề WHERE để giới hạn bớt các nhóm; không được phép sử dụng các hàm nhóm dữ liệu (AVG, COUNT, MAX, MIN, SUM) trong mệnh đề WHERE).
- Bất kỳ cột hay biểu thức trong danh sách của SELECT không phải là hàm nhóm dữ liệu thì phải có trong mệnh đề GROUP BY.
- Mệnh đề WHERE đặt các điều kiện trên các cột, mệnh đề HAVING đặt các điều kiện trên các nhóm được tạo bởi mệnh đề GROUP BY.
2. Cú pháp
SELECT Tên_cột, Hàm_nhóm_dữ_liệu
FROM Tên_bảng
WHERE Điều_kiện
GROUP BY Biểu_thức_nhóm_dữ_liệu
HAVING Điều_kiện_lọc_nhóm_dữ_liệu
ORDER BY Tên_cột
3. Ví dụ
- Dùng mệnh đề HAVING để lọc bớt các nhóm
SELECT DEPARTMENT_ID, SUM(SALARY)
FROM EMPLOYEES
GROUP BY DEPARTMENT_ID
HAVING SUM(SALARY) > 10000
ORDER BY DEPARTMENT_ID
- Dùng mệnh đề WHERE để lọc trên cột và HAVING để lọc trên nhóm
SELECT DEPARTMENT_ID, SUM(SALARY)
FROM EMPLOYEES
WHERE DEPARTMENT_ID IN(10, 20, 30)
GROUP BY DEPARTMENT_ID
HAVING SUM(SALARY) > 10000
ORDER BY DEPARTMENT_ID