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.
WHEREfiltra as linhas antes da agregação. É usado para selecionar registros ao nível dos dados originais.HAVINGfiltra os grupos formados pelo operadorGROUP 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).