博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Postgresql窗口函数(二)
阅读量:6479 次
发布时间:2019-06-23

本文共 804 字,大约阅读时间需要 2 分钟。

在上一篇里,主要窗口函数的基本用法。

在这一篇中,我们来看看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支持的窗口函数,大家可以根据需要选择使用,特别在写复杂查询时,选择合适的窗口函数可以起到意想不到的效果。

转载地址:http://liwuo.baihongyu.com/

你可能感兴趣的文章
javascript 使用btoa和atob来进行Base64转码和解码
查看>>
线程中的同步辅助类CountDownLatch
查看>>
weui 搜索框
查看>>
docker应用-3(搭建hadoop以及hbase集群)
查看>>
[svc]linux iptables实战
查看>>
delphi 查看编译版本
查看>>
MySQL学习笔记(七)使用AutoMySQLBackup工具自动备份MySQL数据库
查看>>
Web Frame 跨域调用Session 丢失问题
查看>>
重定向标准流
查看>>
WCF中的自定义集合类型传输
查看>>
虚拟CentOS访问Windows下共享文件(三)
查看>>
去掉‘为帮助保护您的安全,internet explorer已经限制此文件显示可能访问您的计算机的活动内容’提示...
查看>>
invalid initialization of non-const reference of type ‘int*&’ from a temporary of type ‘int*’...
查看>>
java server faces
查看>>
绑定List<T>到asp:Table控件
查看>>
Resource is out of sync with the file system解决办法
查看>>
Appfuse 使用
查看>>
3D引擎--可移植到Android的开源的引擎
查看>>
Java_tomcat thread dump 分析
查看>>
Excel中sumproduct函数的使用方法和用途
查看>>