SQL 学习笔记:窗口函数(窗口函数)
一、窗口函数 语法
SELECT 列,
函数() OVER (PARTITION BY 分组 ORDER BY 排序) AS r
FROM 表;二、参数说明
| 项目 | 说明 |
|---|---|
ROW_NUMBER | 组内连续编号 1,2,3…(不并列) |
RANK | 并列同号,后续跳号 |
DENSE_RANK | 并列同号,后续不跳号 |
OVER | 定义窗口:PARTITION BY 分组 + ORDER BY 排序 |
三、注意事项
- 窗口函数不折叠行,每行都保留并附计算结果(区别于 GROUP BY)
- MySQL 8.0+ 才支持窗口函数;Oracle 一直支持
- 常用于取每组前 N、排名、累计求和(SUM OVER)
四、经典案例
案例1:组内排名
案例2:连续编号
案例3:累计求和
五、小结
窗口函数是数据库操作中的基础而关键的用法,建议结合文中的示例表在 Oracle 与 MySQL 中分别动手验证,注意两者在自增、分页、正则等处的语法差异,做到融会贯通。
评论(0)
请登录后发表评论。