sql >> Base de Datos >  >> RDS >> Sqlserver

Comprender el grupo por cláusula en SQL Server - Tutorial de SQL Server/TSQL, parte 130

Escenario:

Está trabajando como desarrollador de SQL Server. Tiene una tabla dbo.Customer que tiene CountryShortName y SaleAmount. Se le pide que escriba una consulta que devuelva Sum of SaleAmount , recuento de registros por CountryShortName.


Solución:

La cláusula Group by se usa a menudo con funciones agregadas como Sum, Avg, Count, Max, Min para agrupar el conjunto de resultados por columna/s.
Creemos nuestra tabla de muestra con algunos datos y escribamos nuestra consulta con Group by para responde nuestra pregunta.
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)
 
 Escribamos nuestra consulta usando Sum, Count y Group by Clause
SELECT Sum(saleamount) AS TotalSaleByCountry, 
       Count(*) AS RecordCountByCountry, 
       countryshortname 
FROM   dbo.customer 
GROUP  BY countryshortname
 Cómo utilizar Agrupar por cláusula en SQL Server
 
También puede utilizar varias columnas en la cláusula group by. piense si nuestra tabla tendría estados y le gustaría agrupar por CountryShortName y State, simplemente incluiría State en la consulta como se muestra a continuación.

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