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 系统变量)。