摘要:在上一篇里,主要窗口函数的基本用法。在这一篇中,我们来看看除了聚合函数之外还支持哪些窗口函数吧。注意到虽然为和的员工,相同,但返回的行号仍然连续。返回分组后的行号,但和和函数都不同,当对比值重复时行号重复但不间断。
在上一篇里,主要窗口函数的基本用法。
在这一篇中,我们来看看postgresql除了聚合函数之外还支持哪些窗口函数吧。
row_number()
返回分组后的行号。注意到虽然emp_no为9和11的员工,salary相同,但row_number返回的行号仍然连续。
rank()
返回分组后的行号,但和row_number不同的是,如果对比值重复时,行号重复且会发生间断。
dense_rank()
返回分组后的行号,但和row_number和rank函数都不同,当对比值重复时行号重复但不间断。
percent_rank()
返回当前行的相对排名,计算在分组中的比例(rank-1)/(总记录数-1),需要对比rank函数理解。
cume_dist()
返回当前行的相对排名:(前面的行数或与当前行相同的行数)/(总行数)
ntile(分组数量)
让所有记录尽可以的均匀分布。
lag(value any [, offset integer [, default any ]])
返回偏移值,offset integer是偏移值,正数时前值,负数时后值,没有取到值时用default代替,默认偏移量为0, 默认值为null
lead(value any [, offset integer [, default any ]])
返回偏移值,offset integer是偏移值,正数时取后值,负数时取前值,没有取到值时用default代替
first_value(value any)
返回分组第一个值
last_value(value any)
返回分组最后一个值
nth_value(value any, nth integer)
返回分组的第n个值,如果没有则为null
以上就是postgres支持的窗口函数,大家可以根据需要选择使用,特别在写复杂查询时,选择合适的窗口函数可以起到意想不到的效果。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/17608.html
摘要:在上一篇里,主要窗口函数的基本用法。在这一篇中,我们来看看除了聚合函数之外还支持哪些窗口函数吧。注意到虽然为和的员工,相同,但返回的行号仍然连续。返回分组后的行号,但和和函数都不同,当对比值重复时行号重复但不间断。 在上一篇里,主要窗口函数的基本用法。 在这一篇中,我们来看看postgresql除了聚合函数之外还支持哪些窗口函数吧。 row_number() 返回分组后的行号。注意到虽...
摘要:和聚合函数类似,窗口函数也是计算一些行集合多个行组成的集合,我们称之为窗口的数据。但如果这些窗口函数的作用是一样的,那分开写多个很烦人,也容易出错。 聚合函数大家都用过,像sum,min,avg等,一般是和group by配合使用。和聚合函数类似,窗口函数也是计算一些行集合(多个行组成的集合,我们称之为窗口window frame)的数据。但和常规的聚集函数不同的是,窗口函数不会将参与...
摘要:和聚合函数类似,窗口函数也是计算一些行集合多个行组成的集合,我们称之为窗口的数据。但如果这些窗口函数的作用是一样的,那分开写多个很烦人,也容易出错。 聚合函数大家都用过,像sum,min,avg等,一般是和group by配合使用。和聚合函数类似,窗口函数也是计算一些行集合(多个行组成的集合,我们称之为窗口window frame)的数据。但和常规的聚集函数不同的是,窗口函数不会将参与...
阅读 5235·2021-09-22 15:59
阅读 1833·2021-08-23 09:42
阅读 2549·2019-08-29 18:42
阅读 3430·2019-08-29 10:55
阅读 2032·2019-08-27 10:57
阅读 1750·2019-08-26 18:27
阅读 2706·2019-08-23 18:26
阅读 2891·2019-08-23 14:40