提问人:Kartike Raj 提问时间:4/9/2023 最后编辑:SelVaziKartike Raj 更新时间:4/9/2023 访问量:50
Ollivander 的库存挑战:在 Mysql 编译器中显示 row_number() over(partition by) 中的语法错误
Ollivander's Inventory challenge: Error showing syntax error in row_number() over(partition by ) in Mysql compiler
问:
select id,
age,
coins_needed,
power
from(select wands.id as id,
wands.code as code,
wands_property.age as age,
wands.coins_needed as coins_needed,
wands.power as power,
wands_property.is_evil as is_evil,
row_number() over(partition by wands.code,wands.power order by wands.code,wands.power,wands.coins_needed) as rownum
from wands inner join wands_property
on wands.code = wands_property.code
order by wands.code,wands.power) sub
where is_evil = 0 and rownum = 1
order by 4 DESC,2 DESC
我正在解决黑客排名中的一个挑战,我必须使用,而在黑客排名的MySQL编译器中,存在如下语法错误:-row_number()
第 1 行出现错误 1064 (42000):SQL 语法中有错误; 查看与您的 MySQL 服务器版本相对应的手册,了解 在 '(按 wands.code,wands.power 顺序分区)使用的正确语法 作者:wands.code,wands.power,wands.coins' 第 11 行
我在MySQL工作台中尝试了相同的查询,令我惊讶的是,查询正在运行并且没有显示任何错误。谁能解释一下这里真正的问题是什么。
答:
0赞
SelVazi
4/9/2023
#1
第 1 行出现错误 1064 (42000):SQL 语法中有错误; 查看与您的 MySQL 服务器版本相对应的手册,了解 在 '(partition by ....' 附近使用的正确语法在 11 号线
如果您收到此错误,则可能是您在旧的mysql / mariadb下运行
MySQL/MariaDB 从 Mysql 的 8.0 版和 MariaDB 的 10.2 版开始引入了该函数和其他窗口函数。ROW_NUMBER()
评论
ROW_NUMBER()