Questão FC369432
Filtrar dados no SQL é essencial para extrair informações relevantes, reduzir o volume de resultados e melhorar o desempenho das consultas. Acerca desse cenário, avalie as afirmati
Linguagem SQL
FGV · 2025
Filtrar dados no SQL é essencial para extrair informações relevantes, reduzir o volume de resultados e melhorar o desempenho das consultas.
Acerca desse cenário, avalie as afirmativas a seguir e assinale (V) para a verdadeiras e (F) para a falsa.
( ) A cláusula WHERE pode filtrar as linhas antes da agregação (ou seja, antes do GROUP BY).
( ) A cláusula HAVING filtra os grupos depois da agregação.
( ) Não é possível usar funções agregadas como SUM() e AVG() na cláusula WHERE, mas é permitido na cláusula HAVING.
As afirmativas são, respectivamente,
- F – F – F.
- F – V – V.
- V – V – F.
- V – F – V.
- V – V – V.
Mostrar resposta e comentário
Gabarito
Errado
Comentário do professor
V – V – V: todas as afirmações estão corretas. A cláusula WHERE atua sobre as linhas da tabela antes de qualquer agregação, filtrando quais registros entrarão no agrupamento (GROUP BY).
Depois que os registros são agrupados e as funções agregadas são calculadas, a cláusula HAVING é aplicada para filtrar os grupos com base nos valores agregados.
Por isso, não é permitido usar funções agregadas como SUM() e AVG() na WHERE, pois ela ocorre antes da agregação; já na HAVING essas funções são válidas e comuns para impor condições sobre os grupos formados.
Exemplo prático: SELECT depto, SUM(salario) FROM empregados WHERE ativo = 1 GROUP BY depto HAVING SUM(salario) > 100000. Aqui WHERE filtra linhas, HAVING filtra grupos.
Conteúdo do catálogo FC Concursos · Atualizado em