窗口函数格式:
<窗口函数> over ([partition by <列清单>] order by <排序用列清单>)
窗口函数大体可以分为以下两种:
- 能够作为窗口函数的聚合函数(sum,avg,count,max,min)
- rank、dense_rank、row_number等专用窗口函数。
窗口函数和聚合函数的区别:
- 聚合函数针对分组只返回一个结果
- 窗口函数针对分组中的每一行返回函数的结果
Postgres支持的窗口函数:
- rank() //1,2,2,4,5 (可重复、可间断)
- dense_rank() //1,2,2,3,4(可重复,不间断)
- row_number() //1,2,3,4,5 (不重复,不间断)
- lag(col, n) //col列向下偏移n行
- 更多见Postgres官方文档
参考: