Pular para o conteúdo principal

Questão de Banco de Dados — Banco de Dados Relacionais — CESPE / CEBRASPE 2026

Banco de DadosBanco de Dados Relacionais
Código
ce227874
Banca
CESPE / CEBRASPE
Órgão
SEFAZ-PR
Ano
2026
Nível
Médio
Cargo
Agente Fazendário Estadual - Função: Profissional de Tecnologia da Informação
Em certa secretaria de fazenda, as tabelas contribuinte e pagamento armazenam, respectivamente, informações cadastrais e registros de pagamentos realizados pelos contribuintes, da seguinte forma.Imagem associada para resolução da questãoA administração tributária deve identificar pagamentos cujos valores estejam abaixo da média individual dos pagamentos de cada contribuinte, visando à detecção de possíveis inconsistências ou tentativas de fraude.Considerando essa situação hipotética, assinale a opção em que é apresentada a instrução SQL por meio da qual a operação visada pela administração tributária será corretamente realizada.
  1. AImagem associada para resolução da questão
  2. BImagem associada para resolução da questão
  3. CImagem associada para resolução da questão
  4. DImagem associada para resolução da questão
  5. EImagem associada para resolução da questão
Revelar gabarito e comentário

GabaritoD — [imagem]

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”.

SQL – Subconsulta Correlacionada e Função de Janela

SE LIGUE NESSA!

As alternativas com as instruções SQL não foram transcritas no contexto disponível. A análise abaixo explica o conceito da consulta correta, conforme o gabarito oficial (alternativa D).

Gabarito: letra D. A consulta deve selecionar pagamentos cujo valor seja inferior à média individual de cada contribuinte. Isso exige uma subconsulta correlacionada ou o uso de função de janela AVG() OVER (PARTITION BY id_contribuinte).

A tabela pagamento possui os campos id_contribuinte e valor. Para cada pagamento, é necessário comparar seu valor com a média dos valores de pagamentos do mesmo contribuinte. A média por contribuinte é uma agregação que deve ser computada por grupo, mas sem agrupar o resultado final (queremos cada linha individual).

A solução clássica é uma subconsulta correlacionada:

SELECT *
FROM pagamento p
WHERE p.valor < (SELECT AVG(valor) 
                 FROM pagamento 
                 WHERE id_contribuinte = p.id_contribuinte);

Outra abordagem, mais eficiente e elegante em SGBDs modernos, é usar a função de janela AVG() com PARTITION BY:

SELECT *
FROM (
  SELECT *, AVG(valor) OVER (PARTITION BY id_contribuinte) AS media_contribuinte
  FROM pagamento
) t
WHERE valor < media_contribuinte;

A alternativa D (gabarito) corresponde a uma dessas duas formas, provavelmente a subconsulta correlacionada, que é a mais tradicional em questões de concurso.

  1. 1Agrupar por contribuinte
  2. 2Calcular média de cada grupo
  3. 3Comparar cada pagamento com sua média
  4. 4Filtrar os abaixo da média
LEVEL · soulevel.com.br
NÃO CAIA NESSA!

A banca costuma incluir alternativas que calculam a média geral de todos os pagamentos (sem agrupar por contribuinte) ou que usam GROUP BY e HAVING de forma incorreta. Lembre-se: a condição é por contribuinte, não global.

PEGA ESSA DICA!

Em questões SQL que pedem "abaixo da média de cada grupo", o padrão é subconsulta correlacionada ou OVER (PARTITION BY). Pratique esses dois padrões para reconhecê-los rapidamente na prova.

Como não temos o texto das demais alternativas, não é possível analisar individualmente cada erro. Contudo, o gabarito oficial aponta a letra D como correta, e as demais provavelmente incorrem em erros comuns como mencionado.

Link permanente: /questoes/ce227874