Bài MySQL 23: Lệnh GROUP BY trong MySQL

0
442

Xin chào các bạn, trong bài học ngày hôm nay mình sẽ giới thiệu đến các bạn câu lệnh GROUP BY trong MySQL để nhóm các hàng thành các nhóm con dựa trên giá trị của các cột hoặc các biểu thức.

Giới thiệu

Câu lệnh GROUP BY dùng để nhóm một tập hợp các hàng thành một nhóm con dựa theo giá trị của các cột hoặc các biểu thức. Câu lệnh GROUP BY trả về một hàng cho mỗi nhóm. Nói cách khác, nó làm giảm số hàng trong tập hợp kết quả.

Bạn thường sử dụng lệnh GROUP BY với các hàm tổng hợp như SUM, AVG, MAX, MINCOUNT. Hàm tổng hợp xuất hiện trong câu lệnh SELECT để cung cấp thông tin về mỗi nhóm.

Câu lệnh GROUP BY là một lệnh tùy chọn của câu lệnh SELECT. Dưới đây là cú pháp chung:

Câu lệnh GROUP BY phải xuất hiện sau câu lệnh FROMWHERE. Theo sau từ khóa GROUP BY là danh sách các cột hoặc biểu thức được phân cách bằng dấu phẩy mà bạn muốn sử dụng làm tiêu chí cho các nhóm.

Ví dụ về câu lệnh GROUP BY

Ở đây mình có một bảng employees như sau:

Giả sử bạn muốn nhóm tất cả first_name thành các nhóm con thì bạn sử dụng mệnh đề GROUP BY với cột first_name như sau:

kết quả trả về là:

Các bạn có thể thấy, câu lệnh GROUP BY trả về các giá trị trong cột first_name. Nó hoạt động giống như toán tử DISTINCT như đoạn truy vấn sau đây:

GROUP BY với hàm tổng hợp

Các hàm tổng hợp cho phép bạn thực hiện tính toán một tập hợp các hàng và trả về một giá trị duy nhất. Mệnh đề GROUP BY thường được sử dụng với một hàm tổng hợp để thực hiện phép tính và trả về một giá trị duy nhất cho mỗi nhóm con.

Ví dụ: Mình có một bảng orders với các thuộc tính như sau:

nếu bạn muốn biết các đơn đặt hàng ứng với mỗi trạng thái, bạn có thể sử dụng hàm COUNT với mệnh đề GROUP BY như sau:

kết quả trả về là:

 

Ví dụ về lệnh GROUP BY kết hợp với một biểu thức

Ngoài các cột, bạn có thể nhóm các hàng theo các biểu thức. Truy vấn sau nhận tổng doanh số cho mỗi năm.

kết quả trả về là:

Kết luận

Như vậy trong bài học ngày hôm nay mình đã hướng dẫn các bạn sử dụng câu lệnh GROUP BY để nhóm các hàng thành các nhóm con dựa trên giá trị của các cột hoặc các biểu thức. Trong bài học tiếp theo chúng ta sẽ tìm hiểu về câu lệnh HAVING trong MySQL.

Chúc các bạn học tập tốt!

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây