Eu criei uma tabela temporária e inseri os valores conforme indicado abaixo.
create table #temp( val int );
insert into #temp values(333);
insert into #temp values(222);
insert into #temp values(111);
Ao consultar a instrução select abaixo, obtive 333 como resposta.
Select *
from #temp a
Where 1 =(
Select COUNT(VAL)
from #temp b
where a.val <= b.val
);
Resultado:
val
333
Você pode me ajudar a entender como o SQL Server chegou a esta solução.
Reescreva sua consulta da seguinte maneira:
Se você descomentar a cláusula where, obterá
333 | 1
o resultado. Você solicita uma linha da tabela externa que não possui duplicatas ou valores maiores.Você pode ver sua consulta de contagem interna
Como
Mostrando que apenas
333
from#temp a
tem uma correspondência, pois tem apenas uma igual ou menor que a correspondência com os 3 valores em#temp b
.Isso retorna uma contagem de
1
e é por isso que o valor333
de#temp a
é retornado.