Como usar GROUP BY para agrupar resultados no SQL?

O GROUP BY no SQL permite agrupar registros com base em valores comuns de uma coluna, possibilitando cálculos agregados como COUNT, SUM e AVG.

Como usar GROUP BY para agrupar resultados no SQL?

O GROUP BY no SQL é utilizado para agrupar registros com base em valores comuns de uma coluna, permitindo a aplicação de funções de agregação, como COUNT(), SUM(), AVG(), MAX() e MIN().

Estrutura básica do GROUP BY

A sintaxe do GROUP BY é simples:

SELECT categoria, COUNT(*) AS total_produtos 
FROM produtos 
GROUP BY categoria;

Essa consulta agrupa os produtos por categoria e retorna a quantidade de produtos em cada uma.

Agrupando com múltiplas colunas

Podemos agrupar registros por mais de uma coluna:

SELECT categoria, marca, COUNT(*) AS total_produtos 
FROM produtos 
GROUP BY categoria, marca;

Isso retorna a contagem de produtos por categoria e marca.

Usando GROUP BY com SUM e AVG

Se quisermos calcular a média de preços por categoria:

SELECT categoria, AVG(preco) AS preco_medio 
FROM produtos 
GROUP BY categoria;

Aqui, obtemos o preço médio de cada categoria de produtos.

Cuidados ao usar GROUP BY

  • Todas as colunas do SELECT que não forem funções agregadas devem estar no GROUP BY.
  • ORDER BY pode ser usado após GROUP BY para ordenar os resultados.
  • Filtragens em grupos devem ser feitas com HAVING, e não com WHERE.

O GROUP BY é um dos comandos mais importantes do SQL para análise de dados. Ele permite consolidar informações em relatórios detalhados, como número de vendas por região, faturamento por mês e quantidade de usuários ativos por categoria. O uso correto do GROUP BY facilita a organização dos dados e melhora a performance das consultas, pois permite calcular estatísticas sem precisar processar registros individuais repetidamente.

Algumas aplicações:

  • Contar quantos clientes existem por cidade
  • Calcular o faturamento mensal de uma empresa
  • Obter a média de notas de alunos por turma
  • Listar a quantidade de produtos em cada categoria
  • Gerar relatórios de pedidos agrupados por status

Dicas para quem está começando

  • Use GROUP BY apenas quando precisar agrupar registros
  • Lembre-se de que todas as colunas no SELECT precisam estar no GROUP BY, exceto as funções de agregação
  • Se precisar filtrar os grupos, use HAVING ao invés de WHERE
  • Evite agrupar dados em tabelas muito grandes sem um índice adequado
  • Utilize ORDER BY para organizar os resultados após o agrupamento

Contribuições de Fernando Albuquerque

Compartilhe este tutorial: Como usar GROUP BY para agrupar resultados no SQL?

Compartilhe este tutorial

Continue aprendendo:

Como usar JOIN com mais de uma condição?

Podemos utilizar múltiplas condições em um JOIN no SQL combinando colunas diferentes ou aplicando operadores lógicos como AND e OR.

Tutorial anterior

Como usar HAVING para filtrar agrupamentos no SQL?

O HAVING no SQL permite filtrar registros após o agrupamento feito pelo GROUP BY, sendo ideal para filtrar dados agregados.

Próximo tutorial