GROUP BY là gì? Cách dùng câu lệnh GROUP BY trong SQL như thế nào? Bài viết dưới đây sẽ giúp bạn hiểu rõ và chi tiết hơn về mệnh đề này nhé!
Contents
Mệnh đề GROUP BY trong SQL
Câu lệnh GROUP BY trong SQL cho phép người dùng có thể sắp xếp các hàng truy vấn theo nhóm. Các nhóm này được xác định bởi các cột mà chúng ta chỉ định trong câu lệnh GROUP BY. Điều này có nghĩa là nếu một cột cụ thể của các dòng khác nhau mà có giá trị giống nhau thì chúng sẽ được gộp lại và sắp xếp thành một nhóm.
Mệnh đề GROUP BY trong SQL thường được kết hợp với các hàm khác như HAVING, COUNT(), AVG(), MAX(), MIN() để nhóm kết quả trong một cột hoặc một số cột.
Cú pháp GROUP BY:
Ví dụ minh họa:
Ta thu được kết quả như sau:
Trong ví dụ này, mình đã truy xuất thông tin của các khách hàng có id 1, 2 và năm đặt hàng của họ. Cụ thể, khách hàng có id 1 đã có 1 đơn hàng trong năm 2016 và 2 đơn hàng trong năm 2018. Tương tự, khách hàng có id2 đã có 2 đơn đặt hàng trong năm 2017 và 1 đơn đặt hàng năm 2018.
Ta tiếp tục thêm câu lệnh GROUP BY để truy vấn:
Và thu được kết quả là:
Câu lệnh GROUP BY đã sắp xếp 3 bản ghi của khách hàng id 1 thành 2 nhóm và 3 bản ghi của khách hàng id 2 thành 2 nhóm. Tạo thành bảng ghi mới, là sự kết hợp duy nhất gồm có id khách hàng và năm đặt hàng tương ứng của họ.
Bởi vậy, về chức năng, GROUP BY khi truy vấn tạo ra kết quả khá tương tự như khi truy vấn với mệnh đề DISTINCT.
Ví dụ minh họa:
Và đây là kết quả thu được:
Ví dụ minh họa về GROUP BY với các hàm khác trong SQL
Ví dụ về GROUP BY + COUNT()
Ví dụ: Truy vấn về số lượng khách trong mỗi thành phố
Và thu được kết quả như sau:
=> Trong ví dụ này, GROUP BY có nhiệm vụ truy vấn nhóm các hàng khách lại với nhau theo từng thành phố. COUNT() có nhiệm vụ trả kết quả về số lượng cách hàng khách trong mỗi thành phố.
Ví dụ về GROUP BY + HAVING
Ví dụ: Truy vấn các khách hàng đặt ít nhất 2 đơn hàng trong một năm:
Và đây là kết quả:
=> Lý giải về ví dụ này:
- Câu lệnh GROUP BY trong SQL sẽ nhóm các đơn đặt hàng theo tên id khách hàng và năm đặt hàng. Hàm COUNT() có nhiệm vụ trả kết quả về số lượng đơn đặt hàng của mỗi khách hàng được đặt trong 1 năm.
- Hàm HAVING có nhiệm vụ lọc các khách hàng có số lượng đơn hàng đặt ít hơn 2.
XEM THÊM: Visual Studio Code là gì? Những ưu điểm vượt trội của Visual Studio Code
Ví dụ hàm GROUP BY với 1 bảng
Ta có bảng khách hàng với các cột sau:
Yêu cầu: Thực hiện truy vấn số lượng khách hàng trong mỗi thành phố và sắp xếp theo thứ tự từ A đến Z.
Và thu được kết quả như sau:
Ví dụ câu lệnh GROUP BY trong SQL với 2 bảng
Ta có bảng DatHang và NguoiGui như sau:
Yêu cầu: Truy vấn số lượng đơn hàng được gửi bởi mỗi người gửi:
Và thu được kết quả như sau:
Trên đây là bài viết chia sẻ về câu lệnh GROUP BY trong SQL, mong rằng sẽ mang đến cho bạn đọc nhiều thông tin hữu ích. Mọi ý kiến góp ý về bài viết xin vui lòng để lại bình luận bên dưới, chúng tôi luôn sẵn sàng đón nhận để hoàn hiện bài viết tốt nhất.