Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Informazioni su Raggruppa per clausola in SQL Server - Esercitazione su SQL Server / TSQL Parte 130

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