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.
|
|
João tem pouca experiência com SQL, mas precisa de uma consulta que exiba os competidores que têm o mesmo número de disputas com as camisas azul e verde. João escreveu três scripts, utilizando as tabelas Competidor e Disputa, como definidas anteriormente, e tentou a sorte.
select distinct c.nome
from Competidor c, Disputa d
group by c.nome
having count(distinct d.azul) = count(distinct d.verde)
select c.nome
from Competidor c
where (select sum(1)
from Disputa d where d.azul = c.nome) = (select sum(1)
from Disputa d where d.verde = c.nome)
select distinct c.nome
from Competidor c, Disputa d
where (select sum(1) where d.azul = c.nome) = (
select sum(1) where d.verde = c.nome)
Dado que a resposta correta deve exibir somente o competidor B, conclui-se que: