Sobes.tech
Junior — Middle

Qual é a diferença entre a condição HAVING e a condição WHERE ao trabalhar com consultas SQL?

sobes.tech IA

Resposta da IA

A principal diferença entre WHERE e HAVING em SQL:

  • WHERE filtra as linhas antes da agregação (GROUP BY). Aplica-se a registros individuais.
  • HAVING filtra os grupos após a agregação. É usado para condições em funções de agregação (por exemplo, COUNT, SUM).

Exemplo:

SELECT departamento, COUNT(*) as numero_de_funcionários
FROM funcionários
WHERE salário > 50000    -- filtra funcionários com salário acima de 50000
GROUP BY departamento
HAVING COUNT(*) > 10     -- seleciona departamentos com mais de 10 funcionários

Aqui, WHERE seleciona as linhas para a agregação, e HAVING filtra os dados já agrupados.