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.