Sobes.tech
Junior — Middle

Qual é a diferença entre as condições WHERE e HAVING ao trabalhar com consultas SQL?

sobes.tech IA

Resposta da IA

No SQL, as condições WHERE e HAVING são usadas para filtrar dados, mas aplicam-se em diferentes etapas do processamento da consulta:

  • WHERE filtra as linhas antes da agregação e agrupamento. Limita o conjunto de dados que será usado na consulta.
  • HAVING filtra os grupos após a aplicação de funções de agregação (por exemplo, SUM, COUNT, AVG). É usado para limitar os resultados da agregação.

Exemplo:

SELECT departamento, COUNT(*) as quantidade_de_funcionários
FROM funcionários
WHERE salário > 50000       -- filtra funcionários com salário > 50000
GROUP BY departamento
HAVING COUNT(*) > 10;        -- seleciona departamentos com mais de 10 funcionários

Aqui, WHERE seleciona funcionários com salário acima de 50000, e HAVING filtra os departamentos com mais de 10 funcionários.