Tình huống:
Bạn đang làm việc với tư cách là Nhà phát triển máy chủ SQL. Bạn có một bảng dbo.Customer có CountryShortName và SaleAmount. Bạn được yêu cầu viết một truy vấn sẽ trả về Sum of SaleAmount, số lượng bản ghi theo CountryShortName.
Giải pháp:
Mệnh đề Group by thường được sử dụng với các hàm tổng hợp như Sum, Avg, Count, Max, Min để nhóm kết quả được thiết lập theo cột / s. Hãy tạo bảng mẫu của chúng tôi với một số dữ liệu và viết truy vấn của chúng tôi với Group by to trả lời câu hỏi của chúng tôi.
Create table dbo.Customer (Id int, FName VARCHAR(50), LName VARCHAR(50), CountryShortName CHAR(2), SaleAmount Int) GO --Insert Rows in dbo.Customer Table insert into dbo.Customer Values ( 1,'Raza','M','PK',10), (2,'Rita','John','US',12), (3,'Sukhi','Singh',Null,25), (4,'James','Smith','CA',60), (5,'Robert','Ladson','US',54), (6,'Alice','John','US',87), (6,'John',Null,'US',Null)Hãy viết truy vấn của chúng ta bằng cách sử dụng Sum, Count và Group theo mệnh đề
SELECT Sum(saleamount) AS TotalSaleByCountry, Count(*) AS RecordCountByCountry, countryshortname FROM dbo.customer GROUP BY countryshortnameCách sử dụng Nhóm theo mệnh đề trong SQL Server
Bạn cũng có thể sử dụng nhiều cột trong nhóm theo mệnh đề. Hãy nghĩ xem nếu bảng của chúng ta sẽ có các trạng thái và bạn muốn nhóm theo CountryShortName và State, Bạn chỉ cần đưa State vào truy vấn như hình dưới đây.
SELECT Sum(saleamount) AS TotalSaleByCountry, Count(*) AS RecordCountByCountry, countryshortname,
[State] FROM dbo.customer GROUP BY countryshortname,[State]
Video Demo: What is Group by Clause in SQL Server