我需要对MySQL中的行进行排序,并根据该顺序为每行分配一个数字。 ORDER BY
可以正常工作,但ROW_NUMBER()
无效。
这有效:
USE my_database;
SELECT
id
,volume
FROM my_table
ORDER BY volume;
这不起作用:
USE my_database;
SELECT
id
,volume
,ROW_NUMBER() over(ORDER BY volume)
FROM my_table
ORDER BY volume;
我收到此错误消息:
我在做错什么,如何使它起作用?
我也尝试了
RANK()
和DENSE_RANK()
,它给出了同样的问题。 最佳答案
MySQL中没有ROW_NUMBER()
或RANK()
这样的东西。尝试以下方法:
USE my_database;
SET @row_number = 0;
SELECT id
, volume
, @row_number := @row_number + 1 AS rank
FROM my_table
ORDER BY volume;
关于mysql - SQL ROW_NUMBER给出错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28129131/