FC ConcursosFC Concursos

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,

  1. F – F – F.
  2. F – V – V.
  3. V – V – F.
  4. V – F – V.
  5. 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

Continue aprendendo