Scenario:
Stai lavorando come sviluppatore di SQL Server. Hai una tabella dbo.Customer che ha CountryShortName e SaleAmount. Ti viene chiesto di scrivere una query che dovrebbe restituire Sum of SaleAmount , conteggio dei record per CountryShortName.
Soluzione:
La clausola Raggruppa per viene spesso utilizzata con funzioni aggregate come Sum, Avg,Count,Max,Min per raggruppare il risultato impostato per colonna/e.Creiamo la nostra tabella di esempio con alcuni dati e scriviamo la nostra query con Raggruppa per a rispondi alla nostra domanda.
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)
Scriviamo la nostra query utilizzando Sum, Count e Group by Clause
SELECT Sum(saleamount) AS TotalSaleByCountry, Count(*) AS RecordCountByCountry, countryshortname FROM dbo.customer GROUP BY countryshortname
Come utilizzare Raggruppa per clausola in SQL Server
Puoi anche utilizzare più colonne raggruppate per clausola. pensa se la nostra tabella avrebbe stati e vorresti raggruppare per CountryShortName e State, dovresti semplicemente includere lo stato nella query come mostrato di seguito.
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