Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Group by trong SQL được sử dụng rất nhiều trong lập trình. Vậy khi nào dùng Group by trong SQL? Hãy cùng Quantrimang.com tìm hiểu nhé!
Sức mạnh của cơ sở dữ liệu quan hệ đến từ bộ lọc dữ liệu và kết nối các bảng lại với nhau. Đây là lí do tại sao lập trình viên thường xét tới những mối quan hệ này trước tiên. Thế nhưng, các hệ thống database hiện đại cung cấp kỹ năng đáng giá khác: nhóm.
Nhóm cho phép bạn truy xuất thông tin tóm tắt từ database. Nó cho phép bạn kết hợp các kết quả tạo dữ liệu thống kê hữu ích. Nhóm giúp bạn viết code nhanh hơn cho các trường hợp phổ biến chẳng hạn như tính trung bình của danh sách số liệu. Nó có thể khiến các hệ thống hoạt động hiệu quả hơn.
Vì thế, đừng bỏ qua groupby trong SQL. Nó cực kỳ hữu ích khi lập trình và quản lý cơ sở dữ liệu quan hệ. Bạn đã biết cách dùng Group by trong SQL chưa? Nếu chưa, bài viết dưới đây sẽ cung cấp cho bạn tất cả thông tin cần biết về lệnh group by trong SQL.
Lệnh GROUP BY trong SQL được dùng để sắp xếp dữ liệu đồng nhất theo nhóm với sự trợ giúp của một số chức năng. Ví dụ, nếu một cột nào đó có cùng giá trị ở các hàng khác nhau, sau đó nó sẽ sắp xếp những hàng đó vào một nhóm.
Đặc điểm nổi bật của lệnh GROUP BY trong SQL:
Trong SQL, mệnh đề GROUP BY được sử dụng kết hợp với lệnh SELECT để sắp xếp các hàng dữ liệu có cùng điều kiện giá trị nào đó vào trong các nhóm. Bài viết này sẽ hướng dẫn chi tiết cho bạn cách sử dụng mệnh đề GROUP BY trong SQL với cú pháp và những ví dụ cụ thể để dễ hình dung và nắm bắt câu lệnh tốt hơn.
GROUP BY đứng sau mệnh đề WHERE trong câu lệnh SELECT và đứng trước mệnh đề ORDER BY. Mệnh đề GROUP BY thường được sử dụng với các hàng tổng hợp như COUNT(), MAX(), MIN(), SUM(), AVG() để nhóm các kết quả theo giá trị 1 hoặc nhiều cột.
Cú pháp cơ bản của GROUP BY trong SQL như sau:
SELECT cot1, cot2 FROM ten_bang WHERE [ dieu_kien ] GROUP BY cot1, cot2 ORDER BY cot1, cot2
Giả sử bảng NHANVIEN có các bản ghi như sau:
+----+----------+-----+-----------+----------+
| ID | TEN |TUOI | DIACHI | LUONG |
+----+----------+-----+-----------+----------+
| 1 | Thanh | 32 | Haiphong | 2000.00 |
| 2 | Loan | 25 | Hanoi | 1500.00 |
| 3 | Nga | 23 | Hanam | 2000.00 |
| 4 | Manh | 25 | Hue | 6500.00 |
| 5 | Huy | 27 | Hatinh | 8500.00 |
| 6 | Cao | 22 | HCM | 4500.00 |
| 7 | Lam | 24 | Hanoi | 10000.00 |
+----+----------+-----+-----------+----------+
Ví dụ 1:
Nếu bạn muốn biết tổng số tiền lương của mỗi nhân viên, thì truy vấn GROUP BY sẽ như sau:
SELECT TEN, SUM(LUONG) FROM NHANVIEN GROUP BY TEN;
Kết quả trả về là:
+----------+----------+
| TEN |SUM(LUONG)|
+----------+----------+
| Cao | 4500.00 |
| Huy | 8500.00 |
| Lam | 10000.00 |
| Loan | 1500.00 |
| Manh | 6500.00 |
| Nga | 2000.00 |
| Thanh | 2000.00 |
+----------+----------+
Bây giờ, chúng ta có bảng sau với bản sao các tên trùng lặp:
+----+----------+-----+-----------+----------+
| ID | TEN |TUOI | DIACHI | LUONG |
+----+----------+-----+-----------+----------+
| 1 | Thanh | 32 | Haiphong | 2000.00 |
| 2 | Thanh | 25 | Hanoi | 1500.00 |
| 3 | Nga | 23 | Hanam | 2000.00 |
| 4 | Nga | 25 | Hue | 6500.00 |
| 5 | Huy | 27 | Hatinh | 8500.00 |
| 6 | Cao | 22 | HCM | 4500.00 |
| 7 | Lam | 24 | Hanoi | 10000.00 |
+----+----------+-----+-----------+----------+
Ví dụ 2:
Nếu bạn muốn biết tổng số tiền lương của mỗi nhân viên, thì truy vấn GROUP BY hiện tại sẽ như sau:
SELECT TEN, SUM(LUONG) FROM NHANVIEN GROUP BY TEN;
Kết quả trả về là:
+---------+-------------+
| TEN | SUM(LUONG) |
+---------+-------------+
| Huy | 8500.00 |
| Nga | 8500.00 |
| Cao | 4500.00 |
| Lam | 10000.00 |
| Thanh | 3500.00 |
+---------+-------------+
Ví dụ 3:
Từ bảng NHANVIEN ban đầu, bạn cần đếm xem từng tỉnh thành có bao nhiêu nhân viên, câu lệnh sẽ như sau:
SELECT COUNT(TEN), DIACHI
FROM NHANVIEN
GROUP BY DIACHI;
Sau khi chạy truy vấn trên, bạn sẽ có bảng kết quả như sau:
+-----------+-----------+
| COUNT(TEN)| DIACHI |
+-----------+-----------+
| 1 | Haiphong |
| 1 | Hanam |
| 2 | Hanoi |
| 1 | Hatinh |
| 1 | HCM |
| 1 | Hue |
+-----------+-----------+
Ví dụ 4:
Liệt kê số lượng nhân viên theo mỗi địa chỉ và sắp xếp số lượng đếm được từ cao xuống thấp:
SELECT COUNT(TEN), DIACHI
FROM NHANVIEN
GROUP BY DIACHI
ORDER BY COUNT(TEN) DESC;
Ta sẽ có bảng kết quả như sau:
+-----------+-----------+
| COUNT(TEN)| DIACHI |
+-----------+-----------+
| 2 | Hanoi |
| 1 | Haiphong |
| 1 | Hanam |
| 1 | Hatinh |
| 1 | HCM |
| 1 | Hue |
+-----------+-----------+
Bạn có thể dùng Having để đặt các điều kiện quyết định nhóm nào sẽ là một phần của kết quả cuối cùng. Ngoài ra, nhớ rằng, bạn không thể dùng hàm tổng hợp như SUM(), COUNT()… với mệnh đề WHERE. Do đó, bạn phải dùng mệnh đề HAVING nếu muốn sử dụng bất kỳ hàm kể trên trong điều kiện.
Cú pháp:
SELECT column1, function_name(column2) FROM table_name WHERE condition GROUP BY column1, column2 HAVING condition ORDER BY column1, column2;
Ví dụ:
SELECT NAME, SUM(sal) FROM Emp GROUP BY name HAVING SUM(sal)>3000;
Kết quả:

Trong phần tiếp theo, chúng ta sẽ tìm hiểu về từ khóa DISTINCT, các bạn nhớ theo dõi nhé.
Nguồn tin: Quantrimang.com
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
Cách biến ảnh thật thành nghệ thuật cắt giấy 3D nhiều lớp bằng AI
Prompt tạo ảnh chân dung nghệ thuật đen trắng cực chất bằng AI
Viết bài đăng mạng xã hội thu hút sự chú ý với sự hỗ trợ của AI
Cách chuyển ghi chú viết tay thành infographic
20+ câu lệnh AI biến ảnh gốc thành nghệ thuật cắt giấy 3D nhiều lớp
Lên lịch và tạo hàng loạt bài đăng với sự trợ giúp của AI
Hướng dẫn xóa logo trong video bằng CapCut
Gắn kết và xây dựng cộng đồng trên mạng xã hội với AI
Phân tích và quyết định dựa trên dữ liệu với AI
Đo lường hiệu quả đào tạo: Mô hình Kirkpatrick
Xây dựng hệ thống đào tạo doanh nghiệp với AI
Cách tạo hình ảnh AI trên Gamma
Cách kết nối Google Docs với n8n
Prompt tạo ảnh mục tiêu kế hoạch trên ChatGPT nhiều phong cách
Hướng dẫn tạo trò chơi ô chữ Crossword trên Educaplay
Prompt tạo infographic món ăn cực đẹp bằng AI
Prompt tạo ảnh sản phẩm chuyên nghiệp như studio chụp quảng cáo
Framework ADDIE: Thiết kế hướng dẫn được tăng tốc bởi AI
Đánh giá nhu cầu đào tạo bằng AI
Xây dựng nội dung đào tạo bằng AI