ウィンドウ関数を使用します:
select *
from (
select u.*, dense_rank() over (order by balance desc) as rnk
from users u
) t
where rnk = 2;
クエリのパフォーマンスに大きな違いはないと思います(特にbalance
のインデックスを使用しない場合) )しかし、私の意見では、読みやすく、保守しやすいと思います。
ウィンドウ関数を使用します:
select *
from (
select u.*, dense_rank() over (order by balance desc) as rnk
from users u
) t
where rnk = 2;
クエリのパフォーマンスに大きな違いはないと思います(特にbalance
のインデックスを使用しない場合) )しかし、私の意見では、読みやすく、保守しやすいと思います。