Szenario:
Sie arbeiten als SQL Server Developer. Sie haben eine dbo.Customer-Tabelle mit CountryShortName und SaleAmount. Sie werden aufgefordert, eine Abfrage zu schreiben, die Sum of SaleAmount zurückgeben soll, die Anzahl der Datensätze nach CountryShortName.
Lösung:
Group by-Klausel wird häufig mit Aggregatfunktionen wie Sum, Avg, Count, Max, Min verwendet, um die Ergebnismenge nach Spalte(n) zu gruppieren.Erstellen wir unsere Beispieltabelle mit einigen Daten und schreiben unsere Abfrage mit Group by to Beantworten Sie unsere Frage.
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)
Schreiben wir unsere Abfrage mit Sum, Count und Group by Clause
SELECT Sum(saleamount) AS TotalSaleByCountry, Count(*) AS RecordCountByCountry, countryshortname FROM dbo.customer GROUP BY countryshortname
Verwendung von Group by Clause in SQL Server
Sie können auch mehrere Spalten in einer group by-Klausel verwenden. Denken Sie darüber nach, ob unsere Tabelle Staaten hätte und Sie nach CountryShortName und State gruppieren möchten. Sie würden einfach State in die Abfrage einbeziehen, wie unten gezeigt.
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