Junior — Middle
Qual é a diferença entre as condições HAVING e WHERE ao criar consultas SQL?
sobes.tech IA
Resposta da IA
No SQL, as condições WHERE e HAVING servem para filtrar dados, mas são aplicadas em etapas diferentes do processamento da consulta:
- WHERE filtra as linhas antes da agregação. É usado para limitar o conjunto de dados que será agregado.
- HAVING filtra os grupos após a aplicação de funções de agregação (por exemplo, SUM, COUNT).
Exemplo:
SELECT departamento, COUNT(*) as contagem_de_funcionários
FROM funcionários
WHERE salário > 50000 -- filtragem por salário antes da agregação
GROUP BY departamento
HAVING COUNT(*) > 10; -- filtragem de grupos com mais de 10 funcionários
Aqui, primeiro são selecionados funcionários com salário acima de 50000 (WHERE), depois os dados são agrupados por departamento, e apenas os departamentos com mais de 10 funcionários passam pelo filtro HAVING.