【问题标题】:mysql error when using over() and an alias使用 over() 和别名时的 mysql 错误
【发布时间】: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() 在更复杂的查询中计算线性回归。为了计算线性回归,我需要对每个单独的值和该组值的平均值进行运算。

标签: mysql function phpmyadmin mariadb


【解决方案1】:

似乎 phpMyAdmin 用于验证语法的 linter 尚未针对这种似乎已在 MariaDB 10.2 中引入的语法进行更新。虽然这很烦人,但您可以忽略警告并运行您的查询。

我在https://github.com/phpmyadmin/sql-parser/issues/197 上打开了一个关于它的错误报告,您可以在此继续关注,直到错误得到修复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多