Questão de Banco de Dados — Banco de Dados Relacionais — FCC 2025
Banco de Dados›Banco de Dados Relacionais
Código
fc073756
Banca
FCC
Órgão
SEFAZ-PI
Ano
2025
Nível
Superior
Cargo
Analista do Tesouro Estadual - Área de Conhecimento: Geral (prova 1)
Uma Secretaria da Fazenda mantém um banco de dados com informações sobre empresas e suas fiscalizações. A tabela FISCALIZACAO contém os campos id fiscalizacao (PK), id empresa, data fiscalização, status e valor_multa. Em condições ideais, a consulta SQL que retorna a quantidade de fiscalizações com status Concluída e o total arrecadado com multas por empresa é:
ASELECT id_empresa, COUNT(*) AS total fiscalizacoes FROM FISCALIZACAO WHERE status = 'Concluída' GROUP BY id_empresa;
BSELECT id empresa, COUNT(*) AS total fiscalizacoes, SUM(valor_multa) AS total_ arrecadado FROM FISCALIZACAO WHERE status = 'Concluida’ GROUP BY id empresa;
CSELECT id_empresa, COUNT(id_fiscalizacao) AS total_fiscalizacoes, COUNT(valor_multa) AS total_arrecadado FROM FISCALIZACAC WHERE status = 'Concluida' GROUP BY id_empresa;
DSELECT id_empresa, COUNT(*) AS total fiscalizacoes, AVG(valor_multa) AS total_arrecadado FROM FISCALIZACAO WHERE status = 'Concluida' GROUP BY id_empresa;
ESELECT id_empresa, COUNT(DISTINCT id fiscalizacao) AS total_ fiscalizacoes, COUNT (valor_multa) AS total arrecadado FROM FISCALIZACAO WHERE status = 'Concluida' GROUP BY id empresa;
Revelar gabarito e comentário▾
GabaritoB — SELECT id empresa, COUNT(*) AS total fiscalizacoes, SUM(valor_multa) AS total_ arrecadado FROM FISCALIZACAO WHERE status = 'Concluida’ GROUP BY id empresa;
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: Funções de Agregação e GROUP BY
Gabarito: letra B. A consulta correta deve contar as fiscalizações com status 'Concluída' (COUNT) e somar o valor das multas (SUM), agrupando por empresa. A alternativa B é a única que combina COUNT(*) e SUM(valor_multa) com a filtragem e agrupamento adequados, ainda que contenha pequenos erros de digitação (espaço no nome da coluna).
A banca testa o conhecimento das funções de agregação do SQL: COUNT para contagem e SUM para somatório. As demais alternativas trocam SUM por COUNT ou AVG, ou omitem a soma.
Alternativa A — ❌ Incorreta
Falta a coluna de total arrecadado (SUM(valor_multa)). Retorna apenas a contagem de fiscalizações, não atendendo ao que foi solicitado.
Alternativa B — ✅ Correta ⟵ GABARITO
Apesar dos espaços em "id empresa" e da falta de acento em 'Concluída' (que na prática não afeta a execução), a sintaxe está correta: COUNT(*) conta as linhas filtradas e SUM(valor_multa) soma os valores das multas. O GROUP BY id_empresa agrupa por empresa.
Alternativa C — ❌ Incorreta
Utiliza COUNT(valor_multa) no lugar de SUM(valor_multa). COUNT conta o número de valores não nulos, não o total arrecadado. Além disso, a tabela está grafada como "FISCALIZACAC" (erro de digitação).
Alternativa D — ❌ Incorreta
Utiliza AVG(valor_multa) (média) em vez de SUM (soma). A questão pede o total arrecadado, não a média.
Alternativa E — ❌ Inconreta
Também usa COUNT(valor_multa) para o total arrecadado, em vez de SUM. Além disso, COUNT(DISTINCT id_fiscalizacao) é desnecessário, pois a chave primária já é única.
NÃO CAIA NESSA!
A banca troca a função de agregação: em vez de SUM (soma), usa COUNT (contagem) ou AVG (média) para o total arrecadado. O candidato deve lembrar que "total arrecadado" exige soma dos valores.
PEGA ESSA DICA!
Decore as funções de agregação: COUNT (conta linhas), SUM (soma valores), AVG (média), MAX, MIN. Para calcular totais, sempre use SUM. Em GROUP BY, todas as colunas não agregadas no SELECT devem estar no GROUP BY.