T-SQL - Mệnh đề GROUP BY

Máy chủ SQL GROUP BY mệnh đề được sử dụng phối hợp với câu lệnh SELECT để sắp xếp dữ liệu giống nhau thành các nhóm.

Mệnh đề GROUP BY theo sau mệnh đề WHERE trong câu lệnh SELECT và đứng trước mệnh đề ORDER BY.

Cú pháp

Sau đây là cú pháp cơ bản của mệnh đề GROUP BY. Mệnh đề GROUP BY phải tuân theo các điều kiện trong mệnh đề WHERE và phải đứng trước mệnh đề ORDER BY nếu được sử dụng.

SELECT column1, column2 
FROM table_name 
WHERE [ conditions ] 
GROUP BY column1, column2 
ORDER BY column1, column2

Thí dụ

Hãy xem xét bảng CUSTOMERS có các bản ghi sau:

ID  NAME       AGE       ADDRESS          SALARY 
1   Ramesh     32        Ahmedabad        2000.00 
2   Khilan     25        Delhi            1500.00 
3   kaushik    23        Kota             2000.00 
4   Chaitali   25        Mumbai           6500.00 
5   Hardik     27        Bhopal           8500.00 
6   Komal      22        MP               4500.00 
7   Muffy      24        Indore           10000.00

Nếu bạn muốn biết tổng số tiền lương của mỗi khách hàng, thì sau đây sẽ là truy vấn GROUP BY.

SELECT NAME, SUM(SALARY) as [sum of salary] FROM CUSTOMERS 
   GROUP BY NAME;

Lệnh trên sẽ tạo ra kết quả sau.

NAME        sum of salary 
Chaitali    6500.00 
Hardik      8500.00 
kaushik     2000.00 
Khilan      1500.00 
Komal       4500.00 
Muffy       10000.00 
Ramesh      2000.00

Bây giờ chúng ta hãy xem xét bảng CUSTOMERS sau đây có các bản ghi sau có tên trùng lặp.

ID  NAME       AGE       ADDRESS           SALARY 
1   Ramesh     32        Ahmedabad         2000.00 
2   Khilan     25        Delhi             1500.00 
3   kaushik    23        Kota              2000.00 
4   Chaitali   25        Mumbai            6500.00 
5   Hardik     27        Bhopal            8500.00 
6   Komal      22        MP                4500.00 
7   Muffy      24        Indore            10000.00

Nếu chúng ta muốn biết tổng số tiền lương của mỗi khách hàng, thì sau đây sẽ là truy vấn GROUP BY.

SELECT NAME, SUM(SALARY) as [sum of salary] FROM CUSTOMERS 
   GROUP BY NAME

Lệnh trên sẽ tạo ra kết quả sau.

NAME        sum of salary 
Hardik      8500.00 
kaushik     8500.00 
Komal       4500.00 
Muffy       10000.00 
Ramesh      3500.00