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