Header ads

Header ads
» » 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é.

Bài trước: Lệnh ORDER BY trong SQL

Bài tiếp: Từ khóa DISTINCT trong SQL


Tham gia nhóm Facebook

Cập nhật công nghệ từ Youtube tại link: https://www.youtube.com/channel/UCOxeYcvZPGf-mGLYSl_1LuA/videos
Để tham gia khóa học công nghệ truy cập link: http://thuvien.hocviendaotao.com
Mọi hỗ trợ về công nghệ email: dinhanhtuan68@gmail.com

About Học viện đào tạo trực tuyến

Xinh chào bạn. Tôi là Đinh Anh Tuấn - Thạc sĩ CNTT. Email: dinhanhtuan68@gmail.com .
- Nhận đào tạo trực tuyến lập trình dành cho nhà quản lý, kế toán bằng Foxpro, Access 2010, Excel, Macro Excel, Macro Word, chứng chỉ MOS cao cấp, IC3, tiếng anh, phần mềm, phần cứng .
- Nhận thiết kế phần mềm quản lý, Web, Web ứng dụng, quản lý, bán hàng,... Nhận Thiết kế bài giảng điện tử, số hóa tài liệu...
HỌC VIỆN ĐÀO TẠO TRỰC TUYẾN:TẬN TÂM-CHẤT LƯỢNG.
«
Next
Bài đăng Mới hơn
»
Previous
Bài đăng Cũ hơn