Web Cơ Bản

Cách nhóm các hàng có cùng giá trị lại với nhau trong MySQL

- Trong hệ quản trị cơ sở dữ liệu MySQL, lệnh GROUP BY được dùng để nhóm những hàng có cùng giá trị dựa trên một cột nào đó lại với nhau, nó thường được sử dụng kết hợp với các hàm tính toán tổng hợp như MIN, MAX, SUM, COUNT, AVG, . . . . để tính toán giá trị cột của những hàng được nhóm lại.

- Để sử dụng lệnh GROUP BY thì chúng ta dùng cú pháp như sau:

SELECT column_name(s)
FROM table_name
GROUP BY column_name;

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 ví dụ minh họa:

CustomerID CustomerName Address City
1 Nguyễn Thành Nhân 63 Hoàng Văn Thụ Cần Thơ
2 Dương Trung Đức 16 Nguyễn Văn Cừ Cần Thơ
3 Cà Thị Ngọc Điệp Tổ 6 - Hoàng Hoa Thám Vĩnh Long
4 Cầm Xuân Hải Số 4A Đinh Lễ Sóc Trăng
5 Phạm Thị Thùy Linh 164 Lê Thánh Tông Vĩnh Long
6 Lưu Đức Hoa Số 169 Trần Quang Diệu An Giang
7 Phạm Thu Hiền Số 811 Giải Phóng Cần Thơ
Ví dụ 1:

- Liệt kê số lượng khách hàng ở mỗi thành phố.

SELECT City, COUNT(CustomerID) AS NumberOfCustomers
FROM Customers
GROUP BY City;

- 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
An Giang 1
Cần Thơ 3
Sóc Trăng 1
Vĩnh Long 2
Ví dụ 2:

- Liệt kê số lượng khách hàng (theo thứ tự tăng dần) ở mỗi thành phố.

SELECT City, COUNT(CustomerID) AS NumberOfCustomers
FROM Customers
GROUP BY City
ORDER BY NumberOfCustomers ASC;

- 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
Sóc Trăng 1
An Giang 1
Vĩnh Long 2
Cần Thơ 3