SQL 课程-第七篇:SQL 高级特性与优化
1. 窗口函数
1.1 窗口函数核心概念
- 定义:窗口函数(Window Function)用于在指定的「窗口」(结果集的子集)内执行计算,不改变原表行数,常用于分组排名、累计统计、移动平均等场景。
- 与聚合函数的区别:
- 聚合函数会将分组数据合并为一行(压缩行数),窗口函数则为每行返回一个计算结果。
- 窗口函数通过
OVER()
子句定义计算范围,支持PARTITION BY
(分组)和ORDER BY
(排序)。
1.2 常见窗口函数分类与示例
场景 1:排名计算
-
函数:
ROW_NUMBER()
(唯一排名,重复值不并列)、RANK()
(并列排名,跳过重复值)、DENSE_RANK()
(并列排名,不跳过重复值)。 -
示例:查询员