FC ConcursosFC Concursos

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 é:

  1. SELECT id_empresa, COUNT(*) AS total_fiscalizacoes  

    FROM FISCALIZACAO WHERE status = 'Concluida' GROUP BY id_empresa;

  2. SELECT id_empresa, COUNT(*) AS total_fiscalizacoes, SUM(valor_multa) AS total_arrecadado 

    FROM FISCALIZACAO WHERE status = 'Concluida' GROUP BY id_empresa;

  3. SELECT id_empresa, COUNT(id_fiscalizacao) AS total_fiscalizacoes, COUNT(valor_multa) AS

    total_arrecadado   FROM FISCALIZACAO WHERE status = 'Concluida' GROUP BY id_empresa;

  4. SELECT id_empresa, COUNT(*) AS total_fiscalizacoes, AVG(valor_multa) AS total_arrecadado  

    FROM FISCALIZACAO WHERE status = 'Concluida' GROUP BY id_empresa;

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

Continue aprendendo