Tìm hiểu mệnh đề HAVING trong MySQL
- Trong hệ quản trị cơ sở dữ liệu MySQL, mệnh đề HAVING thường được sử dụng thay thế cho mệnh đề WHERE khi điều kiện chọn lọc dữ liệu có nhắc đến các hàm tính toán tổng hợp như: COUNT, SUM, MIN, MAX, AVG, . . . .
- Để sử dụng mệnh đề HAVING thì chúng ta dùng cú pháp như sau:
SELECT column_name(s)
FROM table_name
GROUP BY column_name
HAVING condition;
MỘT SỐ VÍ DỤ
- Trong bài học này, tôi sẽ sử dụng cái bảng Customers như bên dưới để làm một số ví dụ minh họa.
CustomerID | CustomerName | City |
1 | Nguyễn Thành Nhân | Cần Thơ |
2 | Phạm Minh Cương | An Giang |
3 | Hà Thị Cẩm Vân | Sóc Trăng |
4 | Trần Thị Tuyết Nga | Hậu Giang |
5 | Vũ Tùng Lâm | Cần Thơ |
6 | Phạm Thị Hải Ngân | Ninh Thuận |
7 | Nguyễn Ngọc Ánh Nhi | Vĩnh Long |
8 | Trương Nữ Ngọc Diễm | Bạc Liêu |
9 | Phạm Thị Diệu Hương | Cần Thơ |
10 | Trần Phương Anh | Vĩnh Long |
11 | Nguyễn Thị Hải Yến | Tiền Giang |
12 | Mai Thị Lan Phương | Sóc Trăng |
13 | Hoàng Nghĩa Tuyền | Trà Vinh |
14 | Đặng Phước Trung | Sóc Trăng |
15 | Nguyễn Huyền Hương | Vị Thanh |
16 | Lê Văn Thơm | Sóc Trăng |
Ví dụ 1:
- Liệt kê những thành phố có nhiều hơn hoặc bằng 2 khách hàng.
SELECT City, COUNT(CustomerID) AS NumberOfCustomers
FROM Customers
GROUP BY City
HAVING COUNT(CustomerID) >= 2;
- Sau khi thực thi câu lệnh phía trên thì tôi sẽ lấy được một bảng dữ liệu như bên dưới:
City | NumberOfCustomers |
Cần Thơ | 3 |
Sóc Trăng | 4 |
Vĩnh Long | 2 |
Ví dụ 2:
- Liệt kê những thành phố có nhiều hơn hoặc bằng 2 khách hàng.
(sắp xếp các thành phố theo thứ tự giảm dần của số lượng khách hàng)
SELECT City, COUNT(CustomerID) AS NumberOfCustomers
FROM Customers
GROUP BY City
HAVING COUNT(CustomerID) >= 2
ORDER BY NumberOfCustomers DESC;
- Sau khi thực thi câu lệnh phía trên thì tôi sẽ lấy được một bảng dữ liệu như bên dưới:
Gửi bài viết tới Facebook