GROUP BY trong MySQL
NỘI DUNG BÀI VIẾT
Mệnh đề GROUP BY trong MySQL được sử dụng hợp tác với câu lệnh SELECT để sắp xếp dữ liệu giống nhau thành các nhóm. Mệnh đề này này tuân theo mệnh đề WHERE trong câu lệnh SELECT và đứng trước mệnh đề ORDER BY. Cùng tìm hiểu ở bài này nhé.
Cú pháp
Cú pháp cơ bản của mệnh đề GROUP BY trong MySQL được hiển thị trong khối lệnh sau. Mệnh đề này trong MySQL phải tuân theo các điều kiện trong mệnh đề WHERE và phải đứng trước mệnh đề ORDER BY nếu mệnh đề được sử dụng.
SELECT
column1, column2
FROM
table_name
WHERE
[ conditions ]
GROUP
BY
column1, column2
ORDER
BY
column1, column2
Ví dụ mệnh đề GROUP BY trong MySQL
Giả sử bảng CUSTOMERS có các bản ghi sau đây:
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Ha Anh | 32 | Da Nang | 2000.00 | | 2 | Van Ha | 25 | Ha Noi | 1500.00 | | 3 | Vu Bang | 23 | Vinh | 2000.00 | | 4 | Thu Minh | 25 | Ha Noi | 6500.00 | | 5 | Hai An | 27 | Ha Noi | 8500.00 | | 6 | Hoang | 22 | Ha Noi | 4500.00 | | 7 | Binh | 24 | Ha Noi | 10000.00 | +----+----------+-----+-----------+----------+
Nếu bạn muốn biết tổng số tiền lương của mỗi khách hàng, thì có thể sử dụng mệnh đề GROUP BY sẽ như sau.
SELECT
NAME
,
SUM
(SALARY)
FROM
CUSTOMERS
GROUP
BY
NAME
;
Câu lệnh trên sẽ tạo ra kết quả sau:
Bây giờ, chúng ta hãy update bảng CUSTOMERS có các bản ghi sau với tên trùng lặp:
+
----+----------+-----+-----------+----------+
| ID |
NAME
| AGE | ADDRESS | SALARY |
+
----+----------+-----+-----------+----------+
| 1 | Ha Anh | 32 | Ha Noi | 2000.00 |
| 2 | Ha Anh | 25 | Ha Noi | 1500.00 |
| 3 | Vu Bang | 23 | Vinh | 2000.00 |
| 4 | Thu Minh | 25 | Ha Noi | 6500.00 |
| 5 | Hai An | 27 | Ha Noi | 8500.00 |
| 6 | Hai An | 22 | Ha Noi | 4500.00 |
| 7 | Hai An | 24 | Ha Noi | 10000.00 |
+
----+----------+-----+-----------+----------+
Bây giờ một lần nữa, nếu bạn muốn biết tổng số tiền lương trên mỗi khách hàng, sau đó truy vấn sẽ như sau:
SELECT
NAME
,
SUM
(SALARY)
FROM
CUSTOMERS
GROUP
BY
NAME
;
Câu lệnh trên sẽ tạo ra kết quả sau:
Nguồn: https://viettuts.vn/mysql/menh-de-group-by-trong-mysql
Trả lời