Câu lệnh HAVING trong SQL
- Trang trước SQL Group By
- Trang tiếp theo SQL ucase()
Câu lệnh HAVING
Lý do thêm WHERE từ câu lệnh HAVING trong SQL là vì từ khóa WHERE không thể sử dụng cùng với hàm tổng hợp.
Cú pháp HAVING SQL
SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name HAVING aggregate_function(column_name) operator value
Mô hình HAVING SQL
Chúng ta có bảng "Orders" sau:
O_Id | OrderDate | OrderPrice | Customer |
---|---|---|---|
1 | 2008/12/29 | 1000 | Bush |
2 | 2008/11/23 | 1600 | Carter |
3 | 2008/10/05 | 700 | Bush |
4 | 2008/09/28 | 300 | Bush |
5 | 2008/08/06 | 2000 | Adams |
6 | 2008/07/21 | 100 | Carter |
Bây giờ, chúng ta muốn tìm kiếm khách hàng có tổng số tiền đơn hàng dưới 2000.
Chúng ta sử dụng câu lệnh SQL sau:
SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer HAVING SUM(OrderPrice)<2000
Kết quả tập hợp tương tự:
Customer | SUM(OrderPrice) |
---|---|
Carter | 1700 |
Bây giờ chúng ta muốn tìm kiếm khách hàng "Bush" hoặc "Adams" có tổng số tiền đơn hàng vượt quá 1500.
Chúng ta đã thêm một WHERE từ điều kiện thông thường vào câu lệnh SQL:
SELECT Customer,SUM(OrderPrice) FROM Orders WHERE Customer='Bush' OR Customer='Adams' GROUP BY Customer HAVING SUM(OrderPrice)>1500
Kết quả tập hợp:
Customer | SUM(OrderPrice) |
---|---|
Bush | 2000 |
Adams | 2000 |
- Trang trước SQL Group By
- Trang tiếp theo SQL ucase()