Hướng dẫn MySQL

MySQL HOME Giới thiệu MySQL MySQL RDBMS

MySQL SQL

MySQL SQL MySQL SELECT MySQL Ở ĐÂU MySQL VÀ, HOẶC, KHÔNG ĐẶT HÀNG MySQL BỞI CHÈN MySQL VÀO Giá trị MySQL NULL CẬP NHẬT MySQL MySQL DELETE MySQL LIMIT MySQL MIN và MAX MySQL COUNT, AVG, SUM MySQL LIKE MySQL Wildcards MySQL IN MySQL GIỮA Bí danh MySQL MySQL tham gia MySQL INNER THAM GIA MySQL THAM GIA TRÁI THAM GIA QUYỀN MySQL THAM GIA CROSS MySQL MySQL Tự tham gia MySQL UNION MySQL GROUP BY MySQL CÓ MySQL tồn tại MySQL BẤT CỨ, TẤT CẢ CHÈN CHÈN MySQL MySQL CASE MySQL Null Functions Nhận xét MySQL Toán tử MySQL

Cơ sở dữ liệu MySQL

MySQL Tạo cơ sở dữ liệu MySQL Drop DB MySQL Tạo bảng Bảng thả MySQL Bảng MySQL Alter Các ràng buộc của MySQL MySQL không rỗng MySQL duy nhất Khóa chính MySQL Khóa ngoại MySQL Kiểm tra MySQL MySQL mặc định MySQL Tạo chỉ mục Tăng tự động MySQL MySQL Dates Chế độ xem MySQL

Tham chiếu MySQL

Các kiểu dữ liệu MySQL Các chức năng của MySQL

Ví dụ về MySQL

Ví dụ về MySQL MySQL Quiz Bài tập MySQL

Điều khoản HAVING của MySQL


Mệnh đề HAVING của MySQL

Mệnh HAVINGđề đã được thêm vào SQL vì WHEREtừ khóa không thể được sử dụng với các hàm tổng hợp.

Cú pháp HAVING

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);

Cơ sở dữ liệu Demo

Dưới đây là lựa chọn từ bảng "Khách hàng" trong cơ sở dữ liệu mẫu Northwind:

CustomerID CustomerName ContactName Address City PostalCode Country
1

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4

Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

Ví dụ về MySQL HAVING

Câu lệnh SQL sau liệt kê số lượng khách hàng ở mỗi quốc gia. Chỉ bao gồm các quốc gia có hơn 5 khách hàng:

Thí dụ

SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5;

Câu lệnh SQL sau liệt kê số lượng khách hàng ở mỗi quốc gia, được sắp xếp từ cao đến thấp (Chỉ bao gồm các quốc gia có hơn 5 khách hàng):

Thí dụ

SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5
ORDER BY COUNT(CustomerID) DESC;


Cơ sở dữ liệu Demo

Dưới đây là lựa chọn từ bảng "Đơn hàng" trong cơ sở dữ liệu mẫu Northwind:

OrderID CustomerID EmployeeID OrderDate ShipperID
10248 90 5 1996-07-04 3
10249 81 6 1996-07-05 1
10250 34 4 1996-07-08 2

Và lựa chọn từ bảng "Nhân viên":

EmployeeID LastName FirstName BirthDate Photo Notes
1 Davolio Nancy 1968-12-08 EmpID1.pic Education includes a BA....
2 Fuller Andrew 1952-02-19 EmpID2.pic Andrew received his BTS....
3 Leverling Janet 1963-08-30 EmpID3.pic Janet has a BS degree....

Thêm các ví dụ có HAVING

Câu lệnh SQL sau liệt kê các nhân viên đã đăng ký hơn 10 đơn đặt hàng:

Thí dụ

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM (Orders
INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID)
GROUP BY LastName
HAVING COUNT(Orders.OrderID) > 10;

Câu lệnh SQL sau liệt kê nếu nhân viên "Davolio" hoặc "Fuller" đã đăng ký hơn 25 đơn đặt hàng:

Thí dụ

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM Orders
INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
WHERE LastName = 'Davolio' OR LastName = 'Fuller'
GROUP BY LastName
HAVING COUNT(Orders.OrderID) > 25;