Сценарий:
Вие работите като разработчик на SQL Server. Имате таблица dbo.Customer, която има CountryShortName и SaleAmount. От вас се иска да напишете заявка, която трябва да върне Sum of SaleAmount , брой записи по CountryShortName.
Решение:
Група по клауза често се използва с агрегатни функции като Sum, Avg,Count,Max,Min за групиране на резултатния набор по колона/s.Нека създадем нашата примерна таблица с някои данни и да напишем нашата заявка с Group by до отговорете на нашия въпрос.
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)
Нека напишем нашата заявка, като използваме Sum, Count и Group by Clause
SELECT Sum(saleamount) AS TotalSaleByCountry, Count(*) AS RecordCountByCountry, countryshortname FROM dbo.customer GROUP BY countryshortname
Как да използвате Group by Clause в SQL Server
Можете също да използвате множество колони в група по клауза. помислете дали нашата таблица ще има състояния и бихте искали да групирате по CountryShortName и State, Вие просто ще включите State в заявката, както е показано по-долу.
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