Questão nº 39
Questão de Análise de Sistemas · FGV TJDFT 2022 (nº 39)
Considere um banco de dados relacional que contém uma única tabela, TURFE, cuja estrutura é exibida com sua instância a seguir.
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
cavalo,
(select avg(tempo)
from TURFE t
where t.cavalo = TURFE.cavalo) media
from TURFE
O número de linhas do resultado produzido pela execução do comando acima, excetuada a linha de títulos, é:
- A3;
- B6;
- C9;
- D11; (alternativa correta)
- E16.
Resposta comentada
Gabarito Alternativa D
Conceito-chave: A consulta usa uma subconsulta correlacionada: para cada linha da tabela externa TURFE, a subconsulta interna calcula a média dos tempos daquele cavalo específico. O SELECT externo não tem GROUP BY nem DISTINCT, então retorna uma linha para cada linha da tabela original, repetindo a média calculada.
- (A) Incorreta: 3 seria o número de cavalos distintos, mas a consulta não agrupa por cavalo; ela repete a média para cada ocorrência.
- (B) Incorreta: 6 seria o número de cavalos distintos multiplicado por 2, sem base na estrutura da tabela.
- (C) Incorreta: 9 é o número de linhas da tabela, mas a consulta não filtra nada; retorna todas as linhas, e a tabela tem 11 linhas.
- (D) Correta: A tabela
TURFEtem 11 linhas (páreos × cavalos). Como oSELECTexterno não usaGROUP BY,DISTINCTouWHERE, o resultado terá 11 linhas, uma para cada registro original, com a colunamediarepetida para cada cavalo. - (E) Incorreta: 16 seria o número de combinações possíveis se houvesse produto cartesiano, mas a subconsulta correlacionada não gera isso; ela apenas calcula um valor por linha.
Armadilha da banca: O distrator mais tentador é a letra C (9), pois muitos alunos contam os cavalos distintos (3) e multiplicam pelo número de páreos (3), ou contam as linhas da tabela e esquecem que a subconsulta não altera o número de linhas do resultado. A pegadinha é achar que a subconsulta agrupa ou filtra, mas ela só adiciona uma coluna calculada.
Fonte: FGV TJDFT 2022 Analista Judiciário - Análise de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.
