Câu Lệnh GROUP BY Trong SQL | Lập Trình Từ Đầu
Có thể bạn quan tâm
Câu lệnh GROUP BY được sử dụng để nhóm các hàng có cùng giá trị trong câu lệnh truy vấn. Các nhóm này sẽ được nhóm lại theo cột. Câu lệnh GROUP BY thường được sử dụng kèm theo các hàm như: COUNT(), MAX(), MIN(), SUM(), AVG() để nhóm các kết quả theo một cột hoặc nhiều cột.
Cú pháp câu lệnh GROUP BY như sau:
SELECT column_name(s) FROM table_name WHERE condition GROUP BY column_name(s) ORDER BY column_name(s);Trong đó:
- SELECT column_name(s) là câu lệnh chọn các cột
- table_name là bảng cần chọn
- WHERE condition điều kiện chọn cho từng bảng ghi
- GROUP BY column_name(s) là câu lệnh nhóm các kết quả theo cột được chỉ định
Chú ý: Trong câu lệnh GROUP BY column_name(s) thì tên cột được chọn làm nhóm phải được có ở trong câu lệnh SELECT column_name(s)
2. Ví dụ câu lệnh GROUP BY2.1 Câu lệnh GROUP BY trong một bảng
Dưới đây là bảng KhachHang bao gồm các cột: ID, TenKH, DiaChi, ThanhPho, SoDienThoai
ID | TenKH | DiaChi | ThanhPho | SoDienThoai |
1 | Nguyen Van A | Tay Ho | Ha Noi | 0888999888 |
2 | Nguyen Van B | Quan 5 | Ho Chi Minh | 0988988988 |
3 | Nguyen Van C | Quan 7 | Ho Chi Minh | 0899899899 |
4 | Nguyen Van D | Bac Tu Liem | Ha Noi | 0788788788 |
5 | Nguyen Van E | Ngo Quen | Hai Phong | 0858585858 |
6 | Nguyen Van F | Ngu Hanh Son | Da Nang | 0969696969 |
7 | Nguyen Van G | Tay Ho | Ha Noi | 0838383838 |
Câu lệnh SQL sau liệt kê (hay đếm) số lượng khách hàng ở mỗi thành phố và sắp xếp theo thứ tự A-Z. Câu lệnh thực hiện bằng cách sử dụng hàm COUT() để đếm các bản ghi theo trường ID trong bảng khách hàng và kết hợp với câu lệnh GROUP BY để nhóm lại theo cột ThanhPho như sau:
SELECT ThanhPho, COUNT(KhachHang.ID) AS SoLuongKH FROM KhachHang GROUP BY ThanhPho ORDER BY ThanhPho ASC;Kết quả:
ThanhPho | SoLuongKH |
Da Nang | 1 |
Ha Noi | 3 |
Hai Phong | 1 |
Ho Chi Minh | 2 |
2.2 Câu lệnh GROUP BY với hai bảng
Bảng đầu tiên trong ví dụ này sẽ có tên DatHang trong bảng này sẽ có các cột là: MaDH, SoLuong, KhachHang_ID, MaNG bên dưới đây là bảng DatHang
MaDH | SoLuong | KhachHang_ID | MaNG |
1 | 123 | 3 | 1 |
2 | 345 | 3 | 1 |
3 | 567 | 2 | 3 |
4 | 789 | 1 | 2 |
Bảng tiếp theo trong ví dụ này sẽ có tên là NguoiGui bao gồm các cột là: MaNG, TenNG như bên dưới:
MaNG | TenNG |
1 | Nguoi Gui A |
2 | Nguoi Gui B |
3 | Nguoi Gui C |
Câu lệnh SQL sau liệt kê số lượng đơn đặt hàng được gửi bởi mỗi người gửi hàng, trong câu lệnh này sẽ sử dụng mệnh đề LEFT JOIN kết hợp với câu lệnh GROUP BY như sau:
SELECT NguoiGui.TenNG, COUNT(DatHang.MaDH) AS SL_HangGui FROM DatHang LEFT JOIN NguoiGui ON DatHang.MaNG = NguoiGui.MaNG GROUP BY TenNG;Kết quả:
TenNG | SL_HangGui |
Nguoi Gui A | 2 |
Nguoi Gui B | 1 |
Nguoi Gui C | 1 |
Từ khóa » Câu Lệnh Group By
-
Câu Lệnh GROUP BY Trong SQL
-
Lệnh GROUP BY Trong SQL
-
Mệnh đề GROUP BY Trong SQL - Học Sql Cơ Bản đến Nâng Cao
-
Mệnh đề GROUP BY - Microsoft Support
-
Mệnh đề GROUP BY Trong SQL - GreenSQL
-
SQL Server: Các Lệnh Group By Trong SQL Server Có Thể Bạn Chưa Biết
-
Gộp Kết Quả Với Lệnh Group By Trong Oracle
-
Lệnh Group By Trong SQL Server
-
Câu Lệnh Group By Trong Sql
-
Mệnh đề GROUP BY Trong SQL | Thủ Thuật Tin Học
-
Lệnh GROUP BY Trong SQL - Công Nghệ Lập Trình Học SQL
-
GROUP BY Trong MySQL | Nhóm Các Hàng Có Cùng Giá Trị Lại Với Nhau
-
[Thực Hành] Câu Lệnh GROUP BY
-
GROUP BY So Với ORDER BY - W3seo Phân Biệt Và So Sánh