Questão FC546281
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, dat
Linguagem SQL
FCC · 2025
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_fiscalizacao, 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 é:
- SELECT id_empresa, COUNT(*) AS total_fiscalizacoes
FROM FISCALIZACAO WHERE status = 'Concluida' GROUP BY id_empresa;
- SELECT id_empresa, COUNT(*) AS total_fiscalizacoes, SUM(valor_multa) AS total_arrecadado
FROM FISCALIZACAO WHERE status = 'Concluida' GROUP BY id_empresa;
- SELECT id_empresa, COUNT(id_fiscalizacao) AS total_fiscalizacoes, COUNT(valor_multa) AS
total_arrecadado FROM FISCALIZACAO WHERE status = 'Concluida' GROUP BY id_empresa;
- SELECT id_empresa, COUNT(*) AS total_fiscalizacoes, AVG(valor_multa) AS total_arrecadado
FROM FISCALIZACAO WHERE status = 'Concluida' GROUP BY id_empresa;
- SELECT id_empresa, COUNT(DISTINCT id_fiscalizacao) AS total_fiscalizacoes,
COUNT(valor_multa) AS total_arrecadado
FROM FISCALIZACAO WHERE status = 'Concluida' GROUP BY id_empresa;
Mostrar resposta e comentário
Gabarito
B
Comentário do professor
A consulta escolhida usa corretamente SELECT para projetar três colunas: id_empresa, COUNT(*) como total_fiscalizacoes e SUM(valor_multa) como total_arrecadado. Assim obtemos, por empresa, a quantidade de fiscalizações e o somatório das multas.
O predicado WHERE restringe as linhas a apenas aquelas com status 'Concluida', garantindo que a contagem e a soma considerem só fiscalizações concluídas.
GROUP BY id_empresa agrupa os registros por empresa antes de aplicar as agregações. Em SQL, toda coluna não-aggregada no SELECT deve aparecer no GROUP BY; aqui isso é respeitado.
Observação técnica: \(total\_arrecadado = \sum valor\_multa\). O SUM ignora valores NULL; se deseja incluir empresas sem fiscalizações, seria necessário um LEFT JOIN com a tabela de empresas.
Conteúdo do catálogo FC Concursos · Atualizado em