Sobes.tech
Junior — Middle

Explique as diferenças entre o operador HAVING e a condição WHERE em SQL e em que casos devem ser usados.

sobes.tech IA

Resposta da IA

No SQL, a condição WHERE filtra as linhas antes da agregação, enquanto que HAVING faz isso após a agregação.

  • WHERE aplica-se às linhas individuais da tabela e limita o conjunto de dados que será agregado.
  • HAVING aplica-se aos resultados das funções de agregação e filtra os grupos formados pela cláusula GROUP BY.

Exemplo:

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

Use WHERE para filtrar os dados de origem e HAVING para filtrar os resultados agregados.