Sobes.tech
Junior

Qual é a diferença entre as cláusulas WHERE e HAVING em SQL?

sobes.tech IA

Resposta da IA

WHERE aplica-se antes da agrupação e filtra as linhas do resultado FROM. HAVING aplica-se após a agrupação e filtra os grupos formados com GROUP BY.

Exemplo:

Suponha que temos uma tabela orders com colunas customer_id, order_date e amount.

Encontrar todos os clientes cuja soma total de pedidos excede 1000:

SELECT customer_id, SUM(amount)
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 1000;

Encontrar todos os pedidos com valor superior a 1000:

SELECT customer_id, order_date, amount
FROM orders
WHERE amount > 1000;

Tabela de comparação:

Característica WHERE HAVING
Aplicação A linhas individuais antes de agrupar A grupos de linhas após agrupar
Utiliza Colunas de FROM Funções agregadas e colunas de GROUP BY
Executa-se Antes de GROUP BY Depois de GROUP BY
Funções agregadas Não pode ser usado diretamente Pode ser usado