首页/数据/SQL 速查/WINDOW 子句命名窗口
本包目录(311 条)
查询基础33 条连接与子查询40 条
聚合与窗口函数54 条
函数速查60 条变更与事务52 条性能与执行计划72 条

WINDOW 子句命名窗口

多个窗口函数复用同一 OVER 定义时,用 WINDOW 子句命名,减少重复与笔误;MySQL 8 与 PostgreSQL 都支持。

SQL 速查数据更新于 2026-10-12

示例

示例
SELECT id, dept_id, salary,
       AVG(salary) OVER w AS dept_avg,
       MAX(salary) OVER w AS dept_max,
       salary - AVG(salary) OVER w AS diff
FROM employees
WINDOW w AS (PARTITION BY dept_id);
语法WINDOW 名称 AS (定义),可定义多个
作用同一查询内复用,改一处全生效
顺序每个窗口函数都可以引用命名窗口并追加 ORDER BY(部分数据库限制较多)

易错点

  • 命名窗口在部分数据库上不能再叠加新的 PARTITION BY,追加排序等能力受限,写之前先验证
  • 命名窗口作用域只在当前查询,跨子查询要重新定义

数据来源与参考

  • MySQL 8.0 Reference Manual · Window Functions · WINDOW Clause
  • PostgreSQL Documentation · SELECT · WINDOW Clause
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌