Możesz to zrobić za pomocą podzapytania:
select count(*) as rank
from users u
where u.ammopacks >= (select ammopacks from users u2 where u2.id = x)
To nie robi dokładnie tego samego. Spowoduje to prawdziwy ranking, w którym użytkownicy o tej samej wartości ammopacks
będzie miał taką samą rangę. W tym przypadku oryginał dałby różnym użytkownikom różne wartości sekwencyjne.
Aby uzyskać ten efekt, możesz:
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
)