Questão de Banco de Dados — Banco de Dados Relacionais — FCC 2025
Banco de Dados›Banco de Dados Relacionais
Código
fc073883
Banca
FCC
Órgão
SEFAZ-PI
Ano
2025
Nível
Superior
Cargo
Analista do Tesouro Estadual - Área de Conhecimento: Tecnologia da Informação (prova 2)
Uma consultoria tributária mantém um banco de dados com a tabela impostos, que registra os valores de impostos pagos por empresas. A estrutura da tabela é apresentada a seguir:idempresa (INT): Identificador único da empresanome_empresa (VARCHAR): Nome da empresavalor imposto (DECIMAL.): Valor do imposto pagodata pagamento (DATE): Data do pagamento (formato padrão ISO (YYYY-MM-DD))categoria (VARCHAR): Categoria do imposto (exemplo: "ICMS", "ISS", "IPI")Ο contador precisa de um relatório que mostre o total de impostos pagos por categoria em 2024, ordenado pelo valor total de forma decrescente. Considerando que o banco de dados está aberto e em condições ideais, o comando SQL que atende a necessidade do contador é:
ASELECT categoria, COUNT (valor_imposto) FROM impostos WHERE YEAR (data_pagamento) = 2024 GROUP BY categoria ORDER BY COUNT (valor_imposto) DESC;
BSELECT categoria, AVG(valor_imposto) FROM impostos WHERE data_pagamento LIKE '2024%' GROUP BY categoria ORDER BY AVG(valor_imposto) DESC;
CSELECT categoria, SUM(valor_imposto) FROM impostos WHERE YEAR (data_pagamento) = 2024 BY valor_imposto DESC;
DSELECT categoria, SUM(valor_imposto) FROM impostos WHERE data_pagamento = '2024' GROUP BY categoria ORDER BY SUM(valor_imposto) DESC;
ESELECT categoria, SUM(valor_imposto) FROM impostos WHERE data_pagamento LIKE '2024%' GROUP BY categoria ORDER BY SUM(valor_imposto) DESC;
Revelar gabarito e comentário▾
GabaritoE — SELECT categoria, SUM(valor_imposto) FROM impostos WHERE data_pagamento LIKE '2024%' GROUP BY categoria ORDER BY SUM(valor_imposto) DESC;
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: Consulta com agregação e filtro por data
Gabarito: letra E. A única alternativa que combina corretamente SELECT categoria, SUM(valor_imposto), GROUP BY categoria e ORDER BY SUM(valor_imposto) DESC, com um filtro que seleciona todas as datas de 2024 (data_pagamento LIKE '2024%').
A consulta deve exibir o total(SUM) de impostos pagos por categoria, não contagem (COUNT) ou média (AVG). Também precisa agrupar por categoria e ordenar do maior para o menor valor total. A banca testa o conhecimento das funções de agregação e da sintaxe correta do SQL.
Alternativa
Agregação
Filtro
GROUP BY
ORDER BY
Veredito
A
COUNT (errado)
YEAR() = 2024 (correto)
Presente
COUNT(...) DESC
❌ Agregação errada
B
AVG (errado)
LIKE '2024%' (funciona)
Presente
AVG(...) DESC
❌ Agregação errada
C
SUM (correto)
YEAR() = 2024 (correto)
Ausente
BY valor_imposto DESC (mal formado)
❌ Falta GROUP BY e ORDER BY incorreto
D
SUM (correto)
= '2024' (incorreto)
Presente
SUM(...) DESC
❌ Filtro inválido; '2024' não é uma data
E
SUM (correto)
LIKE '2024%' (funciona)
Presente
SUM(...) DESC
✅ Correta
Alternativa A — ❌ Incorreta
Usa COUNT(valor_imposto), que conta o número de registros, e não o total pago. O filtro YEAR(data_pagamento) = 2024 está correto, mas a agregação errada invalida a consulta.
Alternativa B — ❌ Incorreta
Usa AVG(valor_imposto), que calcula a média, não o total. O filtro com LIKE até funcionaria, mas a agregação está errada.
Alternativa C — ❌ Incorreta
Embora SUM(valor_imposto) e YEAR(data_pagamento) = 2024 estejam corretos, falta a cláusula GROUP BY categoria e o ORDER BY está mal escrito (BY valor_imposto DESC em vez de ORDER BY SUM(valor_imposto) DESC).
Alternativa D — ❌ Incorreta
O filtro data_pagamento = '2024' é inválido: '2024' não é uma data no formato ISO. Mesmo que o SGBD tentasse converter, não selecionaria todas as datas do ano de 2024. O restante da consulta está correto.
Alternativa E — ✅ Correta ⟵ GABARITO
SELECT categoria, SUM(valor_imposto) calcula o total por categoria. FROM impostos indica a tabela. WHERE data_pagamento LIKE '2024%' filtra datas que começam com '2024', ou seja, todas as datas do ano (formato ISO YYYY-MM-DD). GROUP BY categoria agrupa os totais por categoria. ORDER BY SUM(valor_imposto) DESC ordena do maior para o menor valor total. A consulta atende exatamente ao que o contador precisa.
PEGA ESSA DICA!
Em SQL, para filtrar por ano, prefira usar YEAR(data_pagamento) = 2024 ou data_pagamento BETWEEN '2024-01-01' AND '2024-12-31'. O LIKE '2024%' funciona quando a data está em formato string, mas não é padrão ANSI e pode falhar em alguns bancos. Na prova, fique atento à função de agregação correta (SUM para total) e à presença obrigatória do GROUP BY sempre que houver agregação com coluna não agregada no SELECT.