使用 over() 和别名时的 mysql 错误
Posted
技术标签:
【中文标题】使用 over() 和别名时的 mysql 错误【英文标题】:mysql error when using over() and an alias 【发布时间】:2018-11-06 14:20:07 【问题描述】:使用 phpMyAdmin 控制台和 MariaDB 10.2,如果我将 over() 函数与别名结合使用,则会出现各种错误:
SELECT AVG(foo) OVER() AS bar FROM some_table
之前发现了一个别名(靠近 bar)
意外标记(靠近条形)
需要一个别名(附近)
这些带有任一功能的语句都不会给我错误
SELECT AVG(foo) AS bar FROM some_table
SELECT AVG(foo) OVER() FROM some_table
我能找到的所有内容都暗示这些错误来自基本错误,例如逗号不合适,或使用保留关键字作为别名。我不认为我在做任何事情。
【问题讨论】:
这里使用OVER()
的目的是什么?
这只是语法模式的一个简化示例。我正在尝试使用 OVER() 在更复杂的查询中计算线性回归。为了计算线性回归,我需要对每个单独的值和该组值的平均值进行运算。
【参考方案1】:
似乎 phpMyAdmin 用于验证语法的 linter 尚未针对这种似乎已在 MariaDB 10.2 中引入的语法进行更新。虽然这很烦人,但您可以忽略警告并运行您的查询。
我在https://github.com/phpmyadmin/sql-parser/issues/197 上打开了一个关于它的错误报告,您可以在此继续关注,直到错误得到修复。
【讨论】:
以上是关于使用 over() 和别名时的 mysql 错误的主要内容,如果未能解决你的问题,请参考以下文章