Scenariusz:
Pracujesz jako programista SQL Server. Masz tabelę dbo.Customer, która zawiera CountryShortName i SaleAmount. Zostaniesz poproszony o napisanie zapytania, które powinno zwrócić Sum of SaleAmount , liczbę rekordów według CountryShortName.
Rozwiązanie:
Klauzula Group by jest często używana z funkcjami agregującymi, takimi jak Sum, Avg,Count,Max,Min, aby pogrupować zestaw wyników według kolumny/s.Utwórzmy naszą przykładową tabelę z pewnymi danymi i napisz zapytanie za pomocą Group by to odpowiedz na nasze pytanie.
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)
Napiszmy nasze zapytanie, używając opcji Sum, Count i Group by Claus
SELECT Sum(saleamount) AS TotalSaleByCountry, Count(*) AS RecordCountByCountry, countryshortname FROM dbo.customer GROUP BY countryshortname
Jak używać grupowania według klauzuli w programie SQL Server
Możesz także użyć wielu kolumn w klauzuli group by. zastanów się, czy nasza tabela miałaby stany i chciałbyś pogrupować je według nazwy kraju i stanu, możesz po prostu uwzględnić stan w zapytaniu, jak pokazano poniżej.
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