Junior — Middle
Qual é a diferença entre os operadores HAVING e WHERE em SQL e em que casos devem ser usados?
sobes.tech IA
Resposta da IA
O operador WHERE é usado para filtrar linhas antes de agrupar os dados. Ele seleciona as linhas que participarão de operações posteriores, como funções de agregação.
O operador HAVING é aplicado para filtrar dados já agrupados, ou seja, após a execução do GROUP BY. Permite filtrar os grupos com base em condições de agregação.
Exemplo:
SELECT department, COUNT(*) AS employee_count
FROM employees
WHERE salary > 50000 -- filtragem de linhas por salário
GROUP BY department
HAVING COUNT(*) > 5 -- filtragem de grupos pelo número de funcionários
Resumindo:
- WHERE filtra registros individuais antes do agrupamento.
- HAVING filtra os grupos após o agrupamento.
Use WHERE para condições em campos individuais, HAVING para condições em funções de agregação.