【问题标题】:MySQL error: expecting EOF ";" instead of ")"MySQL错误:期待EOF“;”代替 ”)”
【发布时间】: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中引入,你用的是哪个版本的?

标签: mysql window-functions


【解决方案1】:

错误是因为我使用的是5.7版本,而windows功能是在8版本中引入的。

【讨论】:

    猜你喜欢
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多