Postgres窗口函数学习

窗口函数格式:


<窗口函数> over ([partition by <列清单>] order by <排序用列清单>)

窗口函数大体可以分为以下两种:

  1. 能够作为窗口函数的聚合函数(sum,avg,count,max,min)
  2. 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官方文档

参考:

原文地址:https://www.cnblogs.com/jieyuefeng/p/10970866.html