Questão nº 40

Questão de Tecnologia da Informação · FCC TRT-1 2025 (nº 40)

FCC2025Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Cver comentário ↓

Um Analista de um Tribunal Regional do Trabalho foi solicitado a consultar os benefícios concedidos a funcionários de diferentes empresas e apresentar a quantidade total de benefícios pagos por empresa para aquelas que tenham concedido mais de 5 benefícios nos últimos 12 meses. Utilizando um banco de dados Oracle 19c, aberto e em condições ideais, o comando que faz a consulta é:

Resposta comentada

Gabarito Alternativa C

Para encontrar a quantidade de itens por grupo em um período específico, usamos as cláusulas `WHERE` para filtrar as datas, `GROUP BY` para agrupar os resultados e `HAVING` para filtrar os grupos com base em uma condição agregada.

(A) Incorreta: A condição `WHERE data_concessao BETWEEN SYSDATE AND SYSDATE - 365` está logicamente invertida. A função `BETWEEN` espera que o primeiro valor seja menor ou igual ao segundo, o que não ocorre aqui, resultando em nenhuma linha. Mesmo corrigida, `SYSDATE - 365` não é a forma mais precisa de calcular "últimos 12 meses" em Oracle.

(B) Incorreta: A condição `WHERE data_concessao <= ADD_MONTHS(SYSDATE, -12)` seleciona benefícios concedidos antes ou no dia de 12 meses atrás, ou seja, benefícios mais antigos, o oposto do que foi pedido ("nos últimos 12 meses").

(C) Correta: Esta alternativa filtra corretamente os dados. `TRUNC(SYSDATE)` remove a parte da hora da data atual, garantindo que a contagem dos "últimos 12 meses" comece exatamente no início do dia de 12 meses atrás. `ADD_MONTHS(..., -12)` calcula a data 12 meses antes. A condição `data_concessao >= ADD_MONTHS(TRUNC(SYSDATE), -12)` seleciona todos os benefícios concedidos a partir do início do dia de 12 meses atrás até o momento atual. `GROUP BY empresa` agrupa os resultados por empresa, e `HAVING COUNT() > 5` filtra apenas as empresas que concederam mais de 5 benefícios.

(D) Incorreta: O operador `:=` é de atribuição em PL/SQL, não de comparação em SQL; o correto seria `=`. Além disso, `EXTRACT(YEAR FROM data_concessao) = EXTRACT(YEAR FROM SYSDATE) - 1` filtra apenas os benefícios do
ano calendário anterior, e não dos "últimos 12 meses" em um período contínuo.

(E) Incorreta: (Armadilha da banca) A questão pede a
quantidade total de benefícios (`COUNT()`), e não a soma dos valores dos benefícios (`SUM(beneficio)`). Esta alternativa usa `SUM(beneficio)` tanto na seleção quanto na condição `HAVING`, o que não atende ao requisito de contar o número de benefícios.

Fonte: FCC TRT-1 2025 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 004). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho