【发布时间】:2020-04-19 13:53:08
【问题描述】:
我尝试按用户的总分对我的行进行排序。
SUM 和 ORDER BY 工作正常。但我也想添加行的序列号。
当我尝试使用 @row_number 时,我得到了一些数字,但顺序不正确。
正确的 num 列顺序应该是 1,2,3,4,因为我使用用户点总和的 total_point 排序。
如何获得 num 列的正确序列?
SELECT
users.user_id,
users.user_hash,
(@row_number:=@row_number + 1) AS num,
sum(total_point) as total_point
FROM (SELECT @row_number:=0) AS t,user_stats
LEFT JOIN users on users.user_id = user_stats.stats_user_id
WHERE create_date BETWEEN "2020-04-01 00:00:00" AND "2020-04-30 23:59:59"
GROUP BY stats_user_id
ORDER BY total_point DESC
v: mysql 5.7
【问题讨论】:
-
你用的是什么版本的mysql?
-
5.7 所以我不能使用 8 的新 ROW_NUMBER 函数
-
为什么要投反对票?有什么原因吗?
-
没有被我否决。但我可以看到有些人可能会因为你不关注stackoverflow.com/help/how-to-ask而感到厌烦
-
可能是因为没有数据可以重现问题。
标签: mysql sql-order-by sequence