FC ConcursosFC Concursos

Questão FC369444

Quando referenciadas, considere as tabelas relacionais Competidor e Disputa, cujas estruturas e instâncias são descritas abaixo. Todas as colunas são definidas como strings. A tabe

Linguagem SQL

FGV · 2024

Quando referenciadas, considere as tabelas relacionais Competidor e Disputa, cujas estruturas e instâncias são descritas abaixo. Todas as colunas são definidas como strings.

 

A tabela Disputa contém as disputas realizadas entre competidores que aparecem na tabela Competidor. Em cada disputa há dois competidores, um com camisa azul e outro com camisa verde.

 

Competidor

 
Nome
A
B
c
D
E
F
 

Disputa

 

Azul

Verde

A B
C A
B A
C E
F A
F D
 

Considerando as tabelas Competidor e Disputa, descritas anteriormente, analise o comando SQL a seguir.

 

delete from Competidor

where (select sum(1)

       from Disputa d where d.azul = Nome)

    < (select sum(1) from Disputa d

       where d.verde = Nome)

 

O número de linhas removidas na execução do comando acima é:

  1. 6;
  2. 4;
  3. 2;
  4. 1;
  5. 0.
Mostrar resposta e comentário

Gabarito

D

Comentário do professor

O comando elimina linhas de Competidor cuja contagem de aparições como Azul é menor que a contagem como Verde, usando duas subconsultas com SUM(1) para contar ocorrências.

As contagens por competidor são: A: azul=1, verde=3; B: azul=1, verde=1; C: azul=2, verde=NULL; D: azul=NULL, verde=1; E: azul=NULL, verde=1; F: azul=2, verde=NULL.

Importante: quando não há ocorrências, SUM retorna NULL e qualquer comparação com NULL resulta em valor desconhecido (não verdadeiro), logo não satisfaz a condição.

Assim, apenas para A temos \(1<3\) verdadeiro. Portanto, somente o registro de A é removido — total de linhas excluídas: 1.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo