MySQL 8.3 Release Notes
SQL 标准对窗口函数施加了约束,即它们不能在 UPDATE
或 DELETE
语句中用于更新行。这些语句的子查询中使用这些函数以选择行是允许的。
MySQL 不支持以下窗口函数特性:
-
DISTINCT
语法用于聚合窗口函数。 -
嵌套窗口函数。
-
动态帧端点,依赖当前行的值。
解析器识别以下窗口构造,但它们不受支持:
-
帧单元specifier
GROUPS
被解析,但产生错误。只有ROWS
和RANGE
受支持。 -
帧规范的
EXCLUDE
子句被解析,但产生错误。 -
IGNORE NULLS
被解析,但产生错误。只有RESPECT NULLS
受支持。 -
FROM LAST
被解析,但产生错误。只有FROM FIRST
受支持。
对于给定的 SELECT
,最多支持 127 个窗口。请注意,单个查询可能使用多个 SELECT
子句,每个子句支持最多 127 个窗口。不同的窗口数量定义为命名窗口和任何窗口函数的 OVER
子句中指定的隐式窗口的总和。你还应该注意,使用非常大数量窗口的查询可能需要增加默认线程堆栈大小(thread_stack
系统变量)。