这个问题在这里已经有答案了:
mysql中的rank函数(11个答案)
两年前关门了。
SELECT u.user_id, u.user_uid, s.ostats, s.attack, s.defense
FROM stats s JOIN
users u
ON s.id = u.user_id
ORDER BY s.ostats DESC;
所以在上面的数据中,“ostats”(整体)只是攻击+防御的总和,通过使用这个查询,我可以按用户“ostats”值的降序显示用户。。
但是我如何分配和显示每个用户的等级,比如将“ostats”值最大的用户作为等级1,将“ostats”值第二高的用户作为等级2,依此类推。。?
2条答案
按热度按时间fhity93d1#
使用变量跟踪行号怎么样?
mkh04yzy2#
可以使用变量指定行号:
如果是平局,这将给不同的用户提供不同的排名。如果这是一个问题,您可以使用此修改后的表单:
当然,在mysql 8.0中,您可以使用
row_number()
,rank()
或者dense_rank()
为此目的。