mysql order by 不是唯一的等级?

标签 mysql sql-order-by

<分区>

Possible Duplicate:
How do I Handle Ties When Ranking Results in MySQL?

我想按 Activepoints 对表 Status 进行排序,并将排名插入列 rank 中。 它来了:

RANK   USERNAME   ACTIVEPOINTS

 1     monkey100     92
 2     fresnoJump    54
 3     otherUser9    54

但它应该显示的不是唯一的排名

RANK   USERNAME   ACTIVEPOINTS

 1     monkey100     92
 2     fresnoJump    54
 2     otherUser9    54

最佳答案

我认为这可以通过 2 个 UDF 变量解决 http://dev.mysql.com/doc/refman/5.0/en/user-variables.html .

SET @rank = 0, @previous_active_points = 0;
SELECT IF(@previous_active_points<>Activepoints,@rank:=@rank+1,@rank) AS rank,
@previous_active_points:=Activepoints,username,Activepoints 
FROM `status` ORDER BY Activepoints

希望对您有所帮助!

关于mysql order by 不是唯一的等级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7905789/

相关文章:

mysql limit 然后按字母顺序放

mysql - 字符集 utf8 在 perl 代码中不起作用

mysql - 如何根据 DOB 自动增加 Age 字段?

c# - 如何按两个属性对这个简单的 .NET 列表进行排序?

mysql - 从 mysql order by IN 子句获取结果

sql-server-2005 - SQL order by 和 left outer join 没有正确的顺序

sql - MySQL LIMIT 是在 ORDER BY 之前还是之后应用的?

php - 将字符串日期与 MySql 查询中的另一个字符串日期进行比较

mysql - MySQL IF 等于 COALESCE 吗?

mysql - 使用混合列数据类型按大小写排序