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 é:
- 6;
- 4;
- 2;
- 1;
- 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