Educadados
Blog / SQL / GROUP BY e HAVING: como resumir dados em...
SQL

GROUP BY e HAVING: como resumir dados em SQL

GROUP BY junta as linhas em grupos para somar, contar ou tirar média. HAVING filtra esses grupos. Veja a diferença para o WHERE, com exemplos.

Por Felipy Morais • 22 Out 2026
GROUP BY e HAVING: como resumir dados em SQL

Resposta direta: o GROUP BY junta as linhas de uma tabela em grupos (por região, por mês, por cliente) para você somar, contar ou tirar média de cada grupo. O HAVING filtra esses grupos depois do cálculo. A diferença para o WHERE é o momento: o WHERE filtra as linhas antes de agrupar, e o HAVING filtra o resultado já agrupado.

GROUP BY na prática

Com uma tabela de vendas, o total por região fica assim:

SELECT regiao, SUM(valor) AS total
FROM vendas
GROUP BY regiao;

Cada região vira uma linha no resultado, com a soma das vendas dela.

As funções que acompanham o GROUP BY

FunçãoO que calcula
SUM(coluna)Soma
COUNT(*)Quantidade de linhas
AVG(coluna)Média
MIN(coluna) e MAX(coluna)Menor e maior valor

HAVING: filtrando os grupos

Agora só as regiões que venderam mais de R$ 10 mil:

SELECT regiao, SUM(valor) AS total
FROM vendas
GROUP BY regiao
HAVING SUM(valor) > 10000;

Não dá para usar WHERE SUM(valor) > 10000, porque o WHERE roda antes da soma existir.

WHERE e HAVING juntos

Os dois podem aparecer na mesma consulta. Aqui, só as vendas de 2026, e depois só as regiões acima de R$ 10 mil:

SELECT regiao, SUM(valor) AS total
FROM vendas
WHERE data >= '2026-01-01'
GROUP BY regiao
HAVING SUM(valor) > 10000
ORDER BY total DESC;

A ordem em que o banco executa

  1. FROM: escolhe a tabela.
  2. WHERE: filtra as linhas.
  3. GROUP BY: forma os grupos.
  4. HAVING: filtra os grupos.
  5. SELECT: monta as colunas do resultado.
  6. ORDER BY: ordena.

Entender essa ordem resolve a maior parte das dúvidas sobre o que pode ir em cada lugar.

Erros comuns

Perguntas frequentes

Posso agrupar por mais de uma coluna?

Sim. GROUP BY regiao, mes gera uma linha para cada combinação de região e mês.

Posso usar HAVING sem GROUP BY?

Em geral ele só faz sentido junto com o agrupamento, porque filtra o resultado de funções como SUM e COUNT.

Essa pergunta cai em entrevista?

A diferença entre WHERE e HAVING é uma das perguntas clássicas de SQL em processos seletivos para analista.

Próximo passo

A melhor forma de fixar é praticar. Na plataforma da Educadados você treina por comando: há exercícios só de GROUP BY e só de HAVING, do iniciante ao avançado, com correção na hora. Conheça o curso de SQL.

Compartilhe este artigo:

Posts Relacionados