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 dữ liệu từ nhiều bản ghi đồng nhất vào trong các nhóm.
GROUP BY đứng sau mệnh đề WHERE trong câu lệnh SELECT và đứng trước mệnh đề ORDER BY.
Ở 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.
Cú pháp lệnh GROUP BY trong SQL
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
Chú ý mệnh đề GROUP BY phải theo sau các điều kiện trong mệnh đề WHERE và đứng trước mệnh đề ORDER BY nếu được sử dụng.
Ví dụ về GROUP BY trong SQL
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 | +----+----------+-----+-----------+----------+
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:
SQL> 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 | +----+----------+-----+-----------+----------+
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:
SQL> 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 | +---------+-------------+
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é.

-
Bill Gates chính thức tiết lộ lý do thích sử dụng điện thoại Android hơn iPhone
-
Cách xem danh sách tất cả các liên kết (đường link) bạn đã truy cập trên Instagram
-
Cách thiết lập Safari luôn mở các tab ở phiên làm việc trước đó trên máy Mac
-
Tải Camtasia 2020.0.13: Trình chỉnh sửa video mạnh mẽ cho PC Windows
-
Tải Arduino IDE 1.8.13: Phần mềm lập trình tuyệt vời cho người mới bắt đầu
-
Tải XAMPP 8.0.2: Web server cục bộ miễn phí
-
Sự khác biệt giữa SQL, PL/SQL và T-SQL
-
## trong SQL (2 dấu thăng) nghĩa là gì?
-
[QUIZ] Kiểm tra hiểu biết của bạn về SQL - Phần 4
-
5 phần mềm tối ưu hóa truy vấn SQL tốt nhất để tăng tốc MySQL
-
[QUIZ] Kiểm tra hiểu biết của bạn về SQL - Phần 7
-
[QUIZ] Kiểm tra hiểu biết của bạn về SQL - Phần 6