Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> SQL Server

Mệnh đề GROUP BY trong SQL Server

Mệnh đề GROUP BY trong SQL Server (Transact-SQL) được dùng trong câu lệnh SELECT để lấy dữ liệu từ nhiều bản ghi và gom nhóm kết quả vào 1 hoặc nhiều cột.

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

SELECT bieu_thuc1, bieu_thuc2, … bieu_thuc_n,
       ham_tong(bieu_thuc)
FROM bang
[WHERE dieu_kien]
GROUP BY bieu_thuc1, bieu_thuc2, … bieu_thuc_n;

Tham số

bieu_thuc1, bieu_thuc2, … bieu_thuc_n: Biểu thức không nằm trong hàm tổng hợp và phải có trong mệnh đề GROUP BY.

ham_tong: Có thể là các hàm như SUM, COUNT, MIN, MAX hoặc AVG.

bang: Bảng lấy bản ghi, phải có ít nhất 1 bảng trong mệnh đề FROM.

WHERE dieu_kien: Tùy chọn. Điều kiện bản ghi phải thỏa mãn để được chọn trong mệnh đề WHERE.

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

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

Ví dụ 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 một cột (ten_sanpham) trong câu SELECT mà không nằm trong hàm SUM, bạn 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;

Trong ví dụ này, hàm COUNT trả về quanly_id và số lượng 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ả 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 BY bophan;

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