मैं एक विंडो फ़ंक्शन का उपयोग करूंगा:
select *
from (
select u.*, dense_rank() over (order by balance desc) as rnk
from users u
) t
where rnk = 2;
मुझे नहीं लगता कि आपकी क्वेरी में कोई बड़ा प्रदर्शन अंतर होगा (विशेषकर balance
पर एक इंडेक्स के साथ नहीं) ) लेकिन मेरी राय में इसे पढ़ना और बनाए रखना आसान है।