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 评论

评论(0)

登录后发表评论。