SQL 标准对不能在UPDATE
or
DELETE
语句中使用的窗口函数施加约束以更新行。允许在这些语句的子查询中使用此类函数(以选择行)。
MySQL 不支持这些窗口函数特性:
DISTINCT
聚合窗口函数的语法。嵌套窗口函数。
取决于当前行值的动态帧端点。
解析器识别这些窗口结构,但不支持它们:
框架单位说明
GROUPS
符被解析,但产生错误。仅支持ROWS
和RANGE
。框架规范的
EXCLUDE
子句已被解析,但产生错误。IGNORE NULLS
已解析,但会产生错误。仅RESPECT NULLS
支持。FROM LAST
已解析,但会产生错误。仅FROM FIRST
支持。
从 MySQL 8.0.28 开始,给定的SELECT
. 请注意,单个查询可能会使用多个SELECT
子句,每个子句最多支持 127 个窗口。不同窗口的数量定义为命名窗口和指定为任何窗口函数OVER
子句的一部分的任何隐式窗口的总和。您还应该知道,使用大量窗口的查询可能需要增加默认线程堆栈大小(thread_stack
系统变量)。