Tới nội dung chính
Danh mục
Câu lệnh SQL

Mệnh đề GROUP BY trong SQL

Câu lệnh group by trong sql được sử dụng kết hợp với lệnh SELECT để sắp xếp dữ liệu đồng nhất vào trong các nhóm, hàm group by trong sql đi sau mệnh đề WHERE trong một lệnh SELECT và ở trước mệnh đề ORDER BY. SQL và những mệnh đề như GROUP BY ngày càng đóng vai trò quan trọng không kém đối với hệ quản trị CSDL.

Biết cách sử dụng GROUP BY trong SQL một điều cần thiết.


Không có một câu lệnh nào là thừa thải trong một hàm CSDL, chỉ là bạn chưa cần thiết sử dụng đến chúng hoặc chưa áp dụng đúng mục đích. Mệnh đề group by trong sql được thêm vào bởi vì các hàm tập hợp (như SUM) trả về một tập của các giá trị trong cột mỗi khi chúng được gọi, nhờ lệnh GROUP BY, ta có thể tính tổng của các giá trị theo từng nhóm lẻ trong cột.
Cú pháp sử dụng như sau:

SELECT tên_cột, SUM (tên _cột) FROM tên_bảng GROUP BY tên_cột

Ví dụ ta có bản ghi “HOCPHISINHVIEN” như sau:

IDTENTUOIMONHOCHOCPHI
1Hoang21CNTT4
2Nhu22TCNH5
3Hung21CK3
4Hoang21CK3
5Hung21CNTT4
6Ngan22TCNH5


Nếu muốn biết tổng số học phí của từng sinh viên, ta buộc phải sử dụng truy vấn GROUP BY theo cú pháp:
SQL> SELECT TEN, SUM(HOCPHI) FROM HOCPHISINHVIEN
GROUP BY TEN;
Khi đó sẽ cho ra một bảng ghi mới như sau:

TENSUM(HOCPHI)
Hoang7
Nhu5
Hung7
Ngan5


Cách sử dụng group by trong sql nhìn chung cũng khá đơn giản, chỉ cần nắm rõ cú pháp, bạn cũng không cần phải thuộc nằm lòng mới có thể sử dụng được, đây cũng có thể được xem là một lợi thế của người sử dụng ngôn ngữ truy vấn SQL.

Một số hàm tổng hợp thường đi kèm với Group by trong SQL.

Theo cú pháp cấu trúc, group by trong sql server thường được đi kèm với một số hàm nhất định, cụ thể nhất đó là:

  • AVG: Hàm AVG trong SQL được sử dụng để tìm giá trị trung bình của một trường của các bản ghi đa dạng, khi sử dụng kèm mệnh đề group by trong sql, hàm sẽ trả về giá trị trung bình trong nhóm cột.
  • COUNT: Hàm COUNT là hàm đơn giản nhất và rất hữu dụng để đếm số bản ghi, được mong đợi trả về bởi một lệnh SELECT. Khi sử dụng, mệnh đề này sẽ trả về số lần xuất hiện trong một cột.
  • MAX: Hàm MAX trong SQL được sử dụng để tìm ra giá trị lớn nhất trong một tập hợp bản ghi, người dùng có thể tìm ra được giá trị lớn nhất trong tất cả các bản ghi được cung cấp bởi tên với mỗi mệnh đề group by sql server
  • MIN: Tương tự, hàm MIN trả về giá trị nhỏ nhất trong nhóm cột khi đi kèm với group by trong SQL.

Như vậy, group by sql là gì thì chắc hẳn sau bài viết này bí mật đã được bật mí, người dùng có thể tự tìm hiểu cho mình biết khi nào dùng group by trong sql, sử dụng ngôn ngữ máy tính sẽ trở nên dễ dàng hơn khi bạn tinh thông về nó.

Ví dụ về câu lệnh group by trong sql

Một vài ví dụ về câu lệnhgroup by in sql để bạn đọc có thể tham khảo.

Ví dụ 1: Lệnh group by trong sql Server

SELECT cot1, cot2, … cot_N,

Ham_tong (cot)

FROM bang

[WHERE dieukien]

GROUP BY cot1, cot2, … cot_N;

Chú thích:

– Cot1, cot2, … cotN: là giá trị không nằm trong hàm tổng và phải nằm trong mệnh đề GROUP BY.

– Ham_tong: có thể là các hàm như MIN, MAX, COUNT, SUM, AVG

– Bang: bảng cần lấy bảng ghi và phải có ít nhất 1 bảng trong lệnh FROM

– WHERE dieukien: điều kiện phù hợp đáp ứng với mệnh đề WHERE

Ví dụ 2: Cú pháp group by trong sql Server dùng hàm SUM. Dưới đây là ví dụ dùng hàm SUM tính tổng để trả về mã số thiết bị và tổng số lượng theo mã số thiết bị.

SELECT maso_thietbi, SUM(soluong) AS “Tong so luong”

FROM thietbi

GROUP BY maso_thietbi

Ví dụ 3: Cú pháp group by trong sql Server dùng hàm MIN. Cú pháp này dùng hàm MIN nhỏ nhất để cho bạn kết quả tên sản phẩm và số lượng tối thiểu của tên sản phẩm đó.

SELECT ten_sanpham, MIN(Soluong) AS “So luong it nhat”

FROM sanpham

GROUP BY ten_san pham

Ví dụ 4: Cú pháp group by SQL trong Access

SELECT fieldlist

FROM table

WHERE criteria

[GROUP BY groupfieldlist]

Chú thích:

– Fieldlist là tên của một hoặc nhiều trường cần truy xuất

– Table là tên bảng cần truy xuất các bản ghi

– Criteria là điều kiện cho mệnh đề WHERE

– Groupfieldlist là tên tối đa 10 trường được dùng để nhóm các bản ghi theo thứ tự cấp độ nhóm cao nhất đến thấp nhất.

3. Lưu ý về lệnh group by

– Mệnh đề GROUP BY phải luôn theo sau các điều kiện trong mệnh đề WHERE, tức sau khi viết mệnh đề WHERE xong xuống dòng đến mệnh đề GROUP BY.

– Mệnh đề ORDER BY luôn theo sau mệnh đề GROUP BY nếu được sử dụng ở trong cú pháp truy vấn dữ liệu.

Trên đây là những chia sẻ của chúng tôi về câu lệnh group by trong sql, một lệnh được sử dụng kết hợp với mệnh đề WHERE để gom nhóm trong sql các dữ liệu giống nhau. Hy vọng từ những thông tin cú pháp trên bạn có thể học tập, thực hành trong việc sử dụng ngôn ngữ SQL tốt hơn. 

Thảo Larskanis

@Thảo Larskanis

Lĩnh vực công nghệ thông tin, đặc biệt là cấu trúc dữ liệu ngày càng quan trọng và trở nên cần thiết hơn với nhiều doanh nghiệp. Nhận thấy rõ được tầm quan trọng của SQL, Thảo Nguyễn - người đã có nhiều năm học tập và làm việc trong lĩnh vực công nghệ thông tin đã quyết định thành lập một website chia sẻ kiến thức cũng như kinh nghiệm của bản thân về lĩnh vực SQL đến cho những bạn có đam mê và muốn hiểu rõ hơn về lĩnh vực này.