devterview_$ iniciar simulação

WHERE vs HAVING em uma query com GROUP BY

FácilJúniorConsultas

Pergunta

Em uma query com GROUP BY, qual a diferença entre filtrar com WHERE e filtrar com HAVING?

Resposta esperada

WHERE filtra linhas antes do agrupamento, ainda no nível de linha individual. HAVING filtra grupos depois do agrupamento, operando sobre o resultado de funções agregadas (SUM, COUNT, AVG). Por isso 'HAVING SUM(valor) > 100' funciona mas 'WHERE SUM(valor) > 100' dá erro — a agregação ainda não existe na fase do WHERE.

Por que perguntam isso

A opção correta é a única que respeita a ordem lógica de execução do SQL (FROM → WHERE → GROUP BY → HAVING → SELECT). Isso raramente é ensinado explicitamente, então é um bom teste de quem aprendeu SQL na prática vs. decorando sintaxe.

#group-by#fundamentos
publicidade

Perguntas de acompanhamento

Relacionadas