【发布时间】:2021-12-01 19:31:09
【问题描述】:
我有这个代码:
SELECT
date_created,
serial_number,
dense_rank() OVER ( PARTITION BY serial_number ORDER BY date_created DESC) AS "rank",
FROM table_A
;
我收到了这个错误:
")" 在此位置无效,需要 EOF,";"
我不明白为什么我会收到这个错误,我从这个网站获取语法:
https://www.geeksforgeeks.org/mysql-partition-by-clause/
我已经尝试在“rank”之后使用逗号,因为据我所知,FROM 语句之前不应该有逗号。但是出现了同样的错误。
知道发生了什么吗?
编辑:我不能使用 dense_rank() 是可能的,因为我在这个数据库中的用户没有这样做的权限?有很多事情我不能做(例如使用 INTO OUTFILE)。也许我不能使用 Windows,首先它不能识别dense_rank()。此外,关键字“OVER”在我的 MySQL Workbench 中没有以蓝色显示。
【问题讨论】:
-
只删除排名后的逗号 :)
-
我已经尝试过了,但出现了同样的错误。我的用户可能没有使用 Windows 的权限吗?我知道我的用户对此数据库没有完全控制权,可能是这样吗?我是使用 MySQL 的新手,尽管我知道 SQL 的语法,但我对环境知之甚少。谢谢你!
-
share table_一个create语句和insert语句帮助我们找到解决办法,
-
我还没有创建表,我无权访问创建表的代码。
-
DENSE_RANK()是窗口函数,窗口函数在MySQL 8中引入,你用的是哪个版本的?