Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Group by Clause in SQL Server verstehen - SQL Server / TSQL Tutorial Teil 130

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