Sie können dies mit einer Unterabfrage tun:
select count(*) as rank
from users u
where u.ammopacks >= (select ammopacks from users u2 where u2.id = x)
Das macht nicht genau dasselbe. Dadurch wird ein echtes Ranking erstellt, bei dem Benutzer mit dem gleichen Wert von ammopacks
wird den gleichen Rang haben. Das Original würde in diesem Fall verschiedenen Benutzern unterschiedliche sequentielle Werte geben.
Um diesen Effekt zu erzielen, können Sie Folgendes tun:
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
)