| 特点 | 不折叠行:每行都能看到组内计算结果 |
|---|---|
| 语法 | 函数() OVER (PARTITION BY 分组 ORDER BY 排序 [ROWS/RANGE 帧]) |
| 对比 | GROUP BY 每组只输出一行 |
示例
示例
SELECT id, dept_id, salary,
AVG(salary) OVER (PARTITION BY dept_id) AS dept_avg
FROM employees;窗口函数在保留明细行的同时做组内计算:函数 OVER (PARTITION BY … ORDER BY … [帧]);MySQL 8.0+ 与 PostgreSQL 均支持。
| 特点 | 不折叠行:每行都能看到组内计算结果 |
|---|---|
| 语法 | 函数() OVER (PARTITION BY 分组 ORDER BY 排序 [ROWS/RANGE 帧]) |
| 对比 | GROUP BY 每组只输出一行 |
SELECT id, dept_id, salary,
AVG(salary) OVER (PARTITION BY dept_id) AS dept_avg
FROM employees;