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 dùng để kết hợp với lệnh SELECT để sắp xếp dữ liệu đồng nhất vào các nhóm, hàm này trong ngôn ngữ 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 khi dùng ngôn ngữ SQL là một điều cần thiết.


Không có một câu lệnh nào là thừa thải của một hàm CSDL, chỉ là bạn chưa cần thiết dùng đến chúng hoặc chưa áp dụng đúng mục đích. Mệnh đề group by 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ị ở cột đó mỗi khi chúng được gọi, nhờ lệnh GROUP BY trong sql, ta có thể tính tổng của các giá trị theo từng nhóm lẻ tại cột.
Cách thực hiện nội dung 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 dùng truy vấn như sau:
SQL> SELECT TEN, SUM(HOCPHI) FROM HOCPHISINHVIEN
GROUP BY TEN;
Khi đó sẽ cho ra một bảng ghi nội dung mới như sau:

TENSUM(HOCPHI)
Hoang7
Nhu5
Hung7
Ngan5


Cách sử dụng mệnh đề 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 tạo 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 khi lập trình SQL.

Theo công thức 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 của 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 ở một cột.
  • MAX: Hàm MAX trong SQL được tận 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 của 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 SQL.

Như vậy, nội dung về 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 sql, vận 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 để lập trình 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 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 ở hàm tổng và phải nằm ở 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 thuộc 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 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 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 thuộc 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 thuộc ngôn ngữ 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 với kết quả 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.