Oracle
 sql >> Database >  >> RDS >> Oracle

Secondo valore più alto dalla tabella di Oracle DB

Userei una funzione finestra:

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

Non credo che ci sarà una grande differenza di prestazioni nella tua query (soprattutto non con un indice su balance ) ma secondo me è più facile da leggere e mantenere.