MySQL Error number: 3585; Symbol: ER_WINDOW_FRAME_END_ILLEGAL; SQLSTATE: HY000 报错 故障修复 远程处理

文档解释

Error number: 3585; Symbol: ER_WINDOW_FRAME_END_ILLEGAL; SQLSTATE: HY000

Message: Window ‘%s’: frame end cannot be UNBOUNDED PRECEDING.

// 错误说明:

ER_WINDOW_FRAME_END_ILLEGAL错误表明当运行窗口函数时,窗口边界表达式不正确。窗口函数是MySQL 8.0中引入的新函数,用于从连续数据行中使用指定条件分组记录,以便在查询结果中进行聚合函数运算。

常见案例

ER_WINDOW_FRAME_END_ILLEGAL错误通常在运行窗口函数时发生。当我们试图正确使用窗口函数时,有时会发生该错误。以下是示例:

SELECT id, avg(score) OVER (ORDER BY id ROWS BETWEEN CURRENT ROW AND 2)

FROM student;

// 解决方法:

ER_WINDOW_FRAME_END_ILLEGAL错误可以通过以下步骤解决:

1.确保窗口边界表达式正确无误,即前后边界之间限定符必须为“BETWEEN”,以及边界必须在以下类别之一:无限、相对边界、具体边界。

2.请确保语法及参数(如表达式)正确无误,例如,CURRENT ROW、 X PRECEDING、Y FOLLOWING 等参数必须放置在正确位置。

3.请确保根据程序运行规则和语义,边界约束适用于其组内所有行。

4.另外,其他查询语句语法也需要正确匹配,不允许空格或任何其他错误格式,如语法设计的SELECT子句中的字段必须是有效的。

5.如果仍存在问题,请检查数据库表,运行窗口函数时是否有足够的数据来检查是否存在问题,以及是否存在窗口边界解析问题。如果存在解析问题,根据要求识别错误行并将其修复。


数据运维技术 » MySQL Error number: 3585; Symbol: ER_WINDOW_FRAME_END_ILLEGAL; SQLSTATE: HY000 报错 故障修复 远程处理