Oracle
 sql >> Base de données >  >> RDS >> Oracle

Deuxième valeur la plus élevée de la table d'Oracle DB

J'utiliserais une fonction de fenêtre :

select *
from (
  select u.*, dense_rank() over (order by balance desc) as rnk
  from users u
) t
where rnk = 2;

Je ne pense pas qu'il y aura une grande différence de performances pour votre requête (surtout pas avec un index sur balance ) mais à mon avis c'est plus facile à lire et à maintenir.