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