Mệnh đề GROUP BY trong SQL Server cho phép bạn sắp xếp những hàng của truy vấn theo nhóm. Các nhóm được xác định bởi những cột mà bạn chỉ định trong mệnh đề GROUP BY. Thông thường, GROUP BY được sử dụng để tính tổng theo điều kiện, đếm bản ghi thỏa mãn điều kiện nào đó hoặc tìm dữ liệu MIN, MAX.
Để những bạn dễ theo dõi nhữngh sử dụng GROUP BY trong SQL Server và tiện làm ví dụ, chúng ta sẽ sử dụng bảng dữ liệu dưới đây trong toàn bộ bài viết.
Bảng với tên Quantrimang.com, với 4 cột là IDChuyenmuc, Muccon, Chuyenmuclon, Sobai và 6 hàng như sau:
+------------+----------+-------------+-------+
|IDChuyenmuc | Muccon |Chuyenmuclon | Sobai |
+------------+----------+-------------+-------+
| 1 |SQL Server|Lap trinh | 101 |
| 2 |Facebook |Mang xa hoi | 152 |
| 3 |Python |Lap trinh | 101 |
| 4 |JavaScript|Lap trinh | 122 |
| 5 |Chrome |Web | 94 |
| 6 |Instagram |Mang xa hoi | 165 |
+------------+----------+-------------+-------+
Mục lục
GROUP BY trong SQL Server
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 ko 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à những hàm như SUM, COUNT, MIN, MAX hoặc AVG.
- ten_bang: Bảng cần lđấy bản ghi từ đó, phải với ít nhất 1 bảng trong mệnh đề FROM.
- WHERE dieukien: Tùy sắm. Đây là điều kiện mà bản ghi phải đạt được ý muốn để được sắm.
Ví dụ – tiêu dùng hàm SUM
SELECT Chuyenmuclon, SUM(Sobai) AS "Tong"
FROM [Quantrimang.com]
GROUP BY Chuyenmuclon;
Ví dụ này tiêu dùng hàm tính tổng SUM để trả về tên Chuyenmuclon và tổng số bài viết (Sobai) (theo tên chuyên mục lớn).
Vì bạn đưa ra 1 cột (Chuyenmuclon) trong lệnh SELECT và ko nằm trong hàm SUM nên sẽ phải tiêu dùng mệnh đề GROUP BY.
Khi đó ta với bảng kết quả trả về như sau:
+--------------+------+
| Chuyenmuclon | Tong |
+--------------+------+
|Lap trinh | 324 |
|Mang xa hoi | 317 |
|Web | 94 |
+--------------+------+
Ví dụ – tiêu dùng hàm COUNT
SELECT COUNT(Chuyenmuclon), Chuyenmuclon
FROM [Quantrimang.com]
WHERE Chuyenmuclon = 'Lap trinh'
GROUP BY Chuyenmuclon;
Ở ví dụ này, hàm COUNT sẽ trả về số lượng Chuyenmuccon của Chuyenmuclon Lap trinh:
+------+--------------+
| | Chuyenmuclon |
+------+--------------+
| 3 | Lap trinh |
+------+--------------+
Nếu ko muốn lđấy tên cột mà chỉ cần trả về số lượng mục con, bạn chạy lệnh sau:
SELECT COUNT(Chuyenmuclon)
FROM [Quantrimang.com]
WHERE Chuyenmuclon = 'Lap trinh'
GROUP BY Chuyenmuclon;
Kết quả trả về sẽ chỉ với số 3.
Ví dụ – tiêu dùng hàm MIN
SELECT Chuyenmuclon, MIN(Sobai) AS 'So luong it nhat'
FROM [Quantrimang.com]
GROUP BY Chuyenmuclon;
Mệnh đề GROUP BY tiêu dùng với hàm MIN ở trên sẽ trả về Chuyenmuclon và số lượng bài ít nhất của mục lớn đó.
Ví dụ – tiêu dùng hàm MAX
SELECT Chuyenmuclon, MAX(Sobai) AS 'So bai cao nhat'
FROM [Quantrimang.com]
GROUP BY Chuyenmuclon;
Ví dụ cuối cùng này trả về tên của Chuyenmuclon và số bài cao nhất của chuyên mục.
Bài trước: Điều kiện EXISTS trong SQL Server
Bài sau: Mệnh đề HAVING trong SQL Server
Các bạn đang xem tin tức tại Sưu tầm 24h – Chúc những bạn một ngày vui vẻ
Từ khóa: Mệnh đề GROUP BY trong SQL Server