Mệnh đề GROUP BY trong SQL Server

Mệnh đề GROUP BY trong SQL Server cho phép bạn sắp xếp các hàng của truy vấn theo nhóm. Các nhóm được xác định bởi các cột mà bạn chỉ định trong mệnh đề GROUP BY.

Sau đây minh họa cú pháp mệnh đề GROUP BY:

Cú pháp mệnh đề GROUP BY trong SQL Server

SELECT
     bieu_thuc1,  bieu_thuc2,...  bieu_thuc_n, 
        ham_tong_hop (bieu_thuc)
 FROM
     ten_bang
 [WHERE dieukien]
 GROUP BY
     bieu_thuc1,
     bieu_thuc2,...;

Tên biến hoặc giá trị biến

  • bieu_thuc1, bieu_thuc2,... bieu_thuc_n: Biểu thức không nằm bên trong hàm tổng hợp và phải nằm trong mệnh đề GROUP BY.
  • ham_tong_hop: Có thể là các hàm như SUM, COUNT, MIN, MAX hoặc AVG.
  • ten_bang: Bảng cần lấy bản ghi từ đó, phải có ít nhất 1 bảng trong mệnh đề FROM.
  • WHERE dieukien: Tùy chọn. Đây là điều kiện mà bản ghi phải đáp ứng để được chọn.

Ví dụ - dùng hàm SUM

SELECT ten_sanpham, SUM(soluong) AS “Tong so luong”
 FROM sanpham
 GROUP BY ten_sanpham;

Ví dụ này dùng hàm tính tổng SUM để trả về tên sản phẩm và tổng số lượng (theo tên sản phẩm).

Vì bạn đưa ra 1 cột (ten_sanpham) trong lệnh SELECT và không nằm trong hàm SUM nên sẽ phải dùng mệnh đề GROUP BY.

Ví dụ - dùng hàm COUNT

SELECT quanly_id, COUNT (*) AS “So nhan vien”
 FROM nhanvien
 WHERE ho = ‘Anderson’
 GROUP BY quanly_id;

Ở ví dụ này, hàm COUNT sẽ trả về quanly_id và số nhân viên có họ là Anderson.

Ví dụ - dùng hàm MIN

SELECT loai_sanpham, MIN(soluong) AS “So luong it nhat”
 FROM sanpham
 GROUP BY loai_sanpham;

Mệnh đề GROUP BY dùng với hàm MIN ở trên sẽ trả về loại sản phẩm và số lượng tối thiểu cho loại sản phẩm đó.

Ví dụ - dùng hàm MAX

SELECT bophan, MAX(luong) AS “Luong cao nhat”
 FROM nhanvien
 GROUP bophan;

Ví dụ cuối cùng này trả về tên của từng bộ phận và số lương tối đa trong bộ phận.

Bài trước: Điều kiện EXISTS trong SQL Server

Bài sau: Mệnh đề HAVING trong SQL Server

Thứ Năm, 09/04/2020 10:50
4,45 👨 42.692
0 Bình luận
Sắp xếp theo