Scenarie:
Du arbejder som SQL Server-udvikler. Du har en dbo.Customer-tabel, som har CountryShortName og SaleAmount. Du bliver bedt om at skrive en forespørgsel, der skal returnere Sum of SaleAmount , antal poster efter CountryShortName.
Løsning:
Gruppér efter klausul bruges ofte med aggregerede funktioner såsom Sum, Avg, Count, Max, Min for at gruppere resultatet sat efter kolonne/r.Lad os oprette vores eksempeltabel med nogle data og skrive vores forespørgsel med Group by to svar på vores spørgsmål.
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)
Lad os skrive vores forespørgsel ved at bruge Sum, Count og Group by Clause
SELECT Sum(saleamount) AS TotalSaleByCountry, Count(*) AS RecordCountByCountry, countryshortname FROM dbo.customer GROUP BY countryshortname
Sådan bruger du Group by Clause i SQL Server
Du kan også bruge flere kolonner i gruppe for klausul. tænk over, om vores tabel ville have tilstande, og du gerne vil gruppere efter CountryShortName og State. Du vil ganske enkelt inkludere State i forespørgslen som vist nedenfor.
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