Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FGV 2025

Banco de DadosSQL
Código
fg120697
Banca
FGV
Órgão
SEFAZ-PR
Ano
2025
Nível
Superior
Cargo
Auditor Fiscal (Tarde)
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. AF – F – F.
  2. BF – V – V.
  3. CV – V – F.
  4. DV – F – V.
  5. EV – V – V.
Revelar gabarito e comentário

GabaritoE — V – V – V.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Filtros SQL: WHERE e HAVING

Gabarito: letra E — V, V, V. As três afirmativas são verdadeiras: a cláusula WHERE filtra linhas antes da agregação (GROUP BY), a cláusula HAVING filtra grupos após a agregação, e funções agregadas como SUM() e AVG() não podem ser usadas no WHERE, apenas no HAVING. Essa é a ordem correta de processamento de uma consulta SQL com agregação: WHERE → GROUP BY → HAVING.

A banca cobra o conhecimento da ordem lógica de execução das cláusulas SQL e da restrição de uso de funções agregadas. O material de apoio reforça que "WHERE filtra registros individuais antes da agregação, enquanto HAVING filtra grupos após a agregação" e que funções agregadas só aparecem no HAVING, nunca no WHERE.

Afirmativa

Descrição

Valor Lógico

Justificativa

1

A cláusula WHERE pode filtrar as linhas antes da agregação (ou seja, antes do GROUP BY).

V

A cláusula WHERE é aplicada antes do agrupamento, selecionando linhas individuais que participarão da agregação.

2

A cláusula HAVING filtra os grupos depois da agregação.

V

A cláusula HAVING é usada após o agrupamento para filtrar grupos com base em condições, geralmente envolvendo funções agregadas.

3

Não é possível usar funções agregadas como SUM() e AVG() na cláusula WHERE, mas é permitido na cláusula HAVING.

V

Funções agregadas operam sobre conjuntos de linhas; o WHERE é avaliado linha a linha antes da agregação, enquanto o HAVING é avaliado após a agregação.

  1. 1WHEREFiltra linhas individuais
  2. 2GROUP BYAgrupa registros
  3. 3HAVINGFiltra grupos após agregação
LEVEL · soulevel.com.br

Afirmativa 1 — ✅ Verdadeira

A cláusula WHERE é aplicada antes do agrupamento (GROUP BY), selecionando quais linhas individuais participarão da agregação. Conforme o conteúdo de apoio: "WHERE filtra registros individuais antes da agregação". Portanto, é correto afirmar que WHERE pode filtrar linhas antes do GROUP BY.

Afirmativa 2 — ✅ Verdadeira

A cláusula HAVING é usada após o agrupamento, para filtrar grupos com base em condições que geralmente envolvem funções agregadas. A sintaxe típica é: SELECT colunas FROM tabela WHERE condição GROUP BY coluna HAVING condição. O material confirma que HAVING filtra grupos após a agregação.

Afirmativa 3 — ✅ Verdadeira

Funções agregadas (SUM, AVG, COUNT, MAX, MIN) operam sobre conjuntos de linhas. A cláusula WHERE é avaliada linha a linha, antes de qualquer agregação, portanto não pode conter tais funções. Já o HAVING é avaliado após a agregação, sendo o local apropriado para usá-las. O conteúdo de apoio afirma que "não é possível usar funções agregadas (...) na cláusula WHERE, mas é permitido na cláusula HAVING". A afirmativa está perfeita.

Agora, vejamos cada alternativa de combinação V/F:

Alternativa A — ❌ Incorreta

A sequência F – F – F é falsa porque todas as três afirmativas são verdadeiras. Logo, essa alternativa não pode ser a correta.

Alternativa B — ❌ Incorreta

F – V – V: A primeira afirmativa é verdadeira, mas aqui está marcada como F. Portanto, incorreta.

Alternativa C — ❌ Incorreta

V – V – F: A terceira afirmativa é verdadeira, mas aqui está marcada como F. Incorreta.

Alternativa D — ❌ Incorreta

V – F – V: A segunda afirmativa é verdadeira, mas aqui está marcada como F. Incorreta.

Alternativa E — ✅ Correta ⟵ GABARITO

V – V – V: Todas as afirmativas são verdadeiras, conforme demonstrado. A sequência coincide exatamente com a realidade da linguagem SQL.

PEGA ESSA DICA!

A ordem de execução de uma consulta SQL é: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY. Lembre-se: WHERE filtra linhas, HAVING filtra grupos. Funções agregadas só são permitidas no SELECT e no HAVING, nunca no WHERE. Treine com exemplos práticos para fixar.

Gabarito: letra E

Link permanente: /questoes/fg120697