Vous pouvez le faire avec une sous-requête :
select count(*) as rank
from users u
where u.ammopacks >= (select ammopacks from users u2 where u2.id = x)
Cela ne fait pas exactement la même chose. Cela fera un vrai classement, où les utilisateurs avec la même valeur de ammopacks
auront le même rang. L'original donnerait à différents utilisateurs différentes valeurs séquentielles dans ce cas.
Pour obtenir cet effet, vous pouvez faire :
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
)