Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Segundo maior valor da tabela do Oracle DB


Eu usaria uma função de janela:
select *
from (
  select u.*, dense_rank() over (order by balance desc) as rnk
  from users u
) t
where rnk = 2;

Eu não acho que haverá uma grande diferença de desempenho para sua consulta (especialmente não com um índice em balance ), mas na minha opinião é mais fácil de ler e manter.