【问题标题】:Cannot use the "over" clause with MySQL workbench 8.0 (MySQL version 5.7.31)不能在 MySQL 工作台 8.0(MySQL 版本 5.7.31)中使用“over”子句
【发布时间】:2020-08-18 20:17:14
【问题描述】:

我很难看出我做错了什么。我注意到某些语法不起作用(我遇到了关键字“WITH”和现在“OVER”的问题。

我正在对包含id、price 和cluster 列的表应用窗口函数。我想选择一个集群的最高价格。这里我使用“max”函数作为玩具示例。 (我真正想要的是在所有cluster 值中具有最大id 的价格。)

select max(price) over (cluster) as last_p
from transactions tx
right join tx_ids as ids ON ids.ids=tx.id
group by cluster
order by cluster;

我怀疑问题出在我的工作台或 mysql 版本上,但在网上搜索我的问题时还没有找到太多。

【问题讨论】:

  • mysql server 8.x Workbench中存在的窗口函数只是一个gui
  • MySql 5.7 不支持窗口函数。如果是这样,您需要指定valid over clause。 over(columnname) 无效。
  • select version() 在你运行它时会给你什么?
  • @GMB 返回值“5.7.31-0ubuntu0.18.04.1”
  • @GSerg,感谢您的澄清!

标签: mysql group-by mysql-workbench windowing over-clause


【解决方案1】:

正如@GSerg 所指出的,MySQL 5.7 不支持窗口化。

它是在 MySQL 8 上引入的。 参考:https://community.oracle.com/thread/4193269

【讨论】:

    猜你喜欢
    • 2021-11-26
    • 1970-01-01
    • 2019-02-18
    • 2021-03-03
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    • 2010-12-26
    • 1970-01-01
    相关资源
    最近更新 更多