SQL - Có mệnh đề

Các HAVING Clause cho phép bạn chỉ định các điều kiện lọc kết quả nhóm nào xuất hiện trong kết quả.

Mệnh đề WHERE đặt điều kiện vào các cột đã chọn, trong khi mệnh đề HAVING đặt điều kiện cho các nhóm được tạo bởi mệnh đề GROUP BY.

Cú pháp

Khối mã sau đây hiển thị vị trí của Mệnh đề HAVING trong một truy vấn.

SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY

Mệnh đề HAVING phải theo sau mệnh đề GROUP BY trong một truy vấn và cũng phải đứng trước mệnh đề ORDER BY nếu được sử dụng. Khối mã sau 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

Thí dụ

Hãy xem xét bảng KHÁCH HÀNG có các bản ghi sau.

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

Sau đây là một ví dụ, sẽ hiển thị một bản ghi cho số tuổi tương tự sẽ lớn hơn hoặc bằng 2.

SQL > 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 | Khilan |  25 | Delhi   | 1500.00 |
+----+--------+-----+---------+---------+