对比
对比
-- GROUP BY:每组一行汇总
SELECT dept_id, AVG(salary) AS avg_salary
FROM employees
GROUP BY dept_id;
-- 窗口函数:保留每行,附带组内均值用于对比
SELECT id, dept_id, salary,
AVG(salary) OVER (PARTITION BY dept_id) AS avg_salary,
salary - AVG(salary) OVER (PARTITION BY dept_id) AS diff
FROM employees;| GROUP BY | 输出行数 = 组数 |
|---|---|
| OVER | 输出行数 = 明细行数 |
| 组合 | 两类可写在同一查询(不同层级),注意语义 |