Cláusula GROUP BY

O comando GROUP BY no T-SQL é utilizado para agrupar linhas que têm os mesmos valores em colunas especificadas, permitindo realizar operações de agregação, como a soma ou a média, sobre cada grupo de linhas.

Este comando é essencial em consultas que visam resumir informações em grandes volumes de dados, facilitando a análise e a interpretação dos resultados.


Combinar GROUP BY

As funções de agregação podem ser combinadas com a cláusula GROUP BY, que agrupa os resultados conforme os valores de uma ou mais colunas, permitindo assim uma análise mais detalhada dos dados.

Pode-se utilizar GROUP BY para agrupar vendas por região e depois aplicar a função SUM() para calcular o total de vendas por região.


Sintaxe básica

SELECT colunas
FROM [esquena].[tabela]
WHERE condição
GROUP BY agrupar para uma lista
ORDER BY ordenar por lista

Se quisermos saber o total de vendas por produto, podemos agrupar os dados pela coluna do produto e aplicar a função de soma na coluna do valor das vendas.

É importante frisar que todas as colunas selecionadas na cláusula SELECT que não estão envolvidas em funções de agregação devem ser listadas na cláusula GROUP BY.


Exemplo

Esta consulta irá agrupar os dados pela data da venda e calcular a média do valor de venda para cada grupo.


USE AdventureWorks;
GO

SELECT OrderDate as 'Data de Venda', AVG(SubTotal)
FROM Sales.SalesOrderHeader
GROUP BY OrderDate;

Outro exemplo em que o GROUP BY vai ser utilizado para agrupar TerritoryID.

USE AdventureWorks;
GO

SELECT TerritoryID
FROM Sales.Customer
-- 19820 linhas

SELECT TerritoryID, Count(TerritoryID) 
FROM Sales.Customer
GROUP BY TerritoryID

SELECT DISTINCT(TerritoryID)
FROM Sales.Customer
-- 10 linhas




Documentação oficial da Microsoft