U kunt dit doen met een subquery:
select count(*) as rank
from users u
where u.ammopacks >= (select ammopacks from users u2 where u2.id = x)
Dit doet niet precies hetzelfde. Dit zorgt voor een echte ranking, waarbij gebruikers met dezelfde waarde van ammopacks
zal dezelfde rang hebben. Het origineel zou in dit geval verschillende gebruikers verschillende opeenvolgende waarden geven.
Om dit effect te krijgen, kunt u het volgende doen:
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
)