आप इसे एक सबक्वेरी के साथ कर सकते हैं:
select count(*) as rank
from users u
where u.ammopacks >= (select ammopacks from users u2 where u2.id = x)
यह बिल्कुल वही काम नहीं करता है। यह एक वास्तविक रैंकिंग करेगा, जहां ammopacks
. के समान मान वाले उपयोगकर्ता समान रैंक होगी। इस मामले में मूल अलग-अलग उपयोगकर्ताओं को अलग-अलग अनुक्रमिक मान देगा।
इस प्रभाव को प्राप्त करने के लिए, आप यह कर सकते हैं:
select count(*) as rank
from users u
where u.ammopacks > (select ammopacks from users u2 where u2.id = x) or
(u.ammopacks = (select ammopacks from users u2 where u2.id = x) and
u.id <= x
)