Sobes.tech
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.