我有一个像下面这样的mysql表:
id name points
1 john 4635
3 tom 7364
4 bob 234
6 harry 9857
Run Code Online (Sandbox Code Playgroud)
我基本上想要在不选择所有用户的情况下获得个人用户排名.我只想按id选择一个用户,并获得用户排名,这取决于他们拥有的点数.
例如,通过id 3选择等级2来获取tom.
干杯
EEF
Qua*_*noi 18
SELECT uo.*,
(
SELECT COUNT(*)
FROM users ui
WHERE (ui.points, ui.id) >= (uo.points, uo.id)
) AS rank
FROM users uo
WHERE id = @id
Run Code Online (Sandbox Code Playgroud)
密集等级:
SELECT uo.*,
(
SELECT COUNT(DISTINCT ui.points)
FROM users ui
WHERE ui.points >= uo.points
) AS rank
FROM users uo
WHERE id = @id
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8067 次 |
| 最近记录: |