Mệnh đề GROUP BY trong SQL Server – Sưu tầm

Công nghệ

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   |
+------------+----------+-------------+-------+

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 đó.

Kết quả sau lúc tiêu dùng hàm MIN

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.

Kết quả sau lúc chạy hàm MAX

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

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai.