Hệ quản trị CSDL MySQL - MySQL HAVING
Mệnh đề HAVING trong SQL
Trong MySQL mệnh đề HAVING trong SQL cho phép bạn chỉ định điều kiện lọc mà kết quả nhóm xuất hiện trong kết quả.
Mệnh đề WHERE đặt các điều kiện vào các cột đã chọn, trong khi mệnh đề HAVING đặt các điều kiện vào các nhóm được tạo bởi mệnh đề GROUP BY.
Cú pháp
Các Mã lệnh sau đây cho thấy vị trí của khoản HAVING trong một truy vấn.
FROM
WHERE
GROUP BY
HAVING
ORDER BY
Mệnh đề HAVING phải tuân theo mệnh đề GROUP BY trong truy vấn và cũng phải trước mệnh đề ORDER BY nếu sử dụng. Mã lệnh sau đây có cú pháp của câu lệnh SELECT bao gồm mệnh đề HAVING:
SELECT column1, column2
FROM table1, table2
WHERE [ conditions ]
GROUP BY column1, column2
HAVING [ conditions ]
ORDER BY column1, column2
Ví dụ
Giả sử bảng CUSTOMERS có các bản ghi sau.
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ha Anh | 32 | Da Nang | 2000.00 |
| 2 | Van Ha | 25 | Ha Noi | 1500.00 |
| 3 | Vu Bang | 23 | Vinh | 2000.00 |
| 4 | Thu Minh | 25 | Ha Noi | 6500.00 |
| 5 | Hai An | 27 | Ha Noi | 8500.00 |
| 6 | Hoang | 22 | Ha Noi | 4500.00 |
| 7 | Binh | 24 | Ha Noi | 10000.00 |
+----+----------+-----+-----------+----------+
Sau đây là một ví dụ, sẽ hiển thị một bản ghi cho một độ tuổi tương tự sẽ lớn hơn hoặc bằng 2.
SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM CUSTOMERS
GROUP BY age
HAVING COUNT(age) >= 2;
Điều này sẽ tạo ra kết quả sau:
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 2 | Van Ha | 25 | Ha Noi | 1500.00 |
+----+----------+-----+-----------+----------+