【发布时间】:2013-12-26 07:46:36
【问题描述】:
我有两列的 user_points 表。
从 user_points 中选择 user_values,userid,根据我想为用户分配排名的 userid 计数。我已经写了这个查询
SELECT count_temp.* , @curRank:=(@curRank + 1) AS rank
FROM (
SELECT userid, COUNT(*) AS totalcount FROM user_points t GROUP BY t.userid
) AS count_temp
, (SELECT @curRank := 0) r
ORDER BY totalcount DESC;
给出结果:
用户名 |总数 |排名
2 6 1
3 2 2
4 2 3
1 1 4
但我想为用户 ID 3 和 4 分配排名 2,因为它们的总数相同..
【问题讨论】:
-
所以 userid=1 应该有 3 或 4 的等级?
-
不,userid=1 应该有 rank=4,其他用户应该有自己的 rank
标签: mysql