Sobes.tech
Junior — Middle

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

sobes.tech IA

Resposta da IA

WHERE e HAVING são condições de filtragem em SQL, mas aplicam-se em fases diferentes do processamento de dados.

  • WHERE filtra as linhas antes da agregação. É usado para selecionar registros ao nível dos dados originais.
  • HAVING filtra os grupos formados pelo operador GROUP BY. Aplica-se após a agregação.

Exemplo:

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

Aqui, primeiro selecionamos funcionários com salário acima de 50000 (WHERE), depois agrupamos os dados por departamento, e após isso selecionamos apenas os departamentos com mais de 10 funcionários (HAVING).