我需要在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;
我收到此错误消息:
SELECT id,volume,ROW_NUMBER()over(ORDER BY volume)FROM my_table ORDER BY volume错误代码:1064 . 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第4行0.000秒附近使用'(ORDER BY volume)FROM my_table ORDER BY vol'附近使用正确的语法
我做错了什么,如何让它发挥作用?
我也尝试了 RANK()
和 DENSE_RANK()
,这给出了同样的问题 .
2 回答
MySQL中不存在函数ROW_NUMBER() .
但是,您可以复制它,可能:http://www.mysqltutorial.org/mysql-row_number/
example:
在MySQL中没有
ROW_NUMBER()
或RANK()
之类的东西 . 请尝试以下方法: