Questão nº 38

Questão de Análise de Sistemas · FGV TJDFT 2022 (nº 38)

FGV2022Analista Judiciário - Análise de SistemasAnálise de Sistemas
Gabarito: Dver comentário ↓

Considere um banco de dados relacional que contém uma única tabela, TURFE, cuja estrutura é exibida com sua instância a seguir.

Figura da questão de Análise de Sistemas

Para cada páreo, ou corrida, são armazenados os nomes dos cavalos participantes e os respectivos tempos. A classificação de cada cavalo numa corrida segue a ordem crescente de tempo. Não há empates.


Com relação à tabela TURFE, descrita anteriormente, analise o comando SQL a seguir.

select distinct cavalo
from TURFE t1
where not exists
      (select * from TURFE t2, TURFE t3
       where t2.cavalo = t1.cavalo
         and t3.pareo = t2.pareo
         and t3.tempo > t2.tempo)

A execução do comando acima produz, somente, todos os cavalos que, em suas corridas:

Resposta comentada

Gabarito Alternativa D

O comando usa um NOT EXISTS com uma subconsulta correlacionada que procura, para cada cavalo, se existe outro cavalo na mesma corrida com tempo maior. Se não existe ninguém com tempo maior, significa que aquele cavalo tem o maior tempo da corrida, ou seja, chegou em último (já que não há empates). O DISTINCT só evita repetições se o cavalo correu em vários páreos.

  • (A) Incorreta: cavalos que nunca chegaram em último teriam sempre alguém com tempo maior que o deles, então o NOT EXISTS falharia e eles não seriam listados.
  • (B) Incorreta: a condição não verifica vitória (menor tempo), apenas ausência de tempo maior, então não exclui vencedores.
  • (C) Incorreta: a condição não verifica vitória, apenas ausência de tempo maior, então vencedores podem ser listados se também forem últimos em outras corridas.
  • (D) Correta: o NOT EXISTS só é verdadeiro quando não há nenhum t3 com tempo maior que o do cavalo na mesma corrida, ou seja, ele tem o maior tempo (último lugar) em todas as corridas que participou.
  • (E) Incorreta: sempre venceram exigiria que não houvesse tempo menor, mas a subconsulta verifica apenas tempo maior, então o comando não identifica vencedores.

Fonte: FGV TJDFT 2022 Analista Judiciário - Análise de Sistemas (Caderno Tipo 1). 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