以下内置的窗口函数是PostgreSQL数据库的Greenplum扩展。所有的窗口函数都是不可变的。有关窗口函数的更多信息,请参阅“Greenplum数据库管理员指南”中的“窗口表达式”。
Function | Return | Full Syntax | 描述 |
Type | |||
cume dist() | double | CUME DIST() OVER ( [PARTITION BY | 计算一组值中的值的累积分布。 具有相同值的行始终评估为相同的累积分布值。 |
precision | expr ] order by expr ) | ||
dense rank() | bigint | DENSE RANK () OVER ( [PARTITION | 计算有序行组中行的排名而不跳过排名值。 具有相同值的行赋予相同的等级值。 |
by expr ] order by expr ) | |||
first | same as input expr type | FIRSTVALUE( expr ) OVER ([PARTITION BY expr] ORDER BY | 返回一组有序的值中的第一个值。 |
value( expr) | expr [rows|range frame_expr ]) | ||
lag(expr [,offset] | same as input expr type | lag( expr [, offset ] [, default ]) | 提供对同一个表的多个行的访问,而无需进行自加入。 给定从查询返回的一系列行和游标的位置,lag提供对位于该位置之前的给定物理偏移处的行的访问。 默认偏移量为1.默认设置如果偏移量超出窗口范围返回的值。 如果未指定default,则默认值为null。 |
[,default]) | OVER ( [PARTITION BY expr ] ORDER BY expr ) | ||
last valueexpr | same as input expr type | LAST VALUE( expr) OVER ([PARTITION BY expr] ORDER BY expr [ROWS|RANGE ) | 返回一组有序的值中的最后一个值。 |
lead(expr [,offset] | same as input expr type | LEAD( expr [, offset] | 提供对同一个表的多个行的访问,而无需进行自加入。 给定从查询返回的一系列行和游标的位置,lead提供对位于该位置之后的给定物理偏移处的行的访问。 |
[,default]) | [,xppddefailt]) OVER ( [PARTITION BY expr] ORDER BY expr ) | 如果未指定偏移量,则默认偏移量为1.如果偏移量超出窗口范围,则会设置返回的值。 如果未指定default,则默认值为null。 | |
ntile(expr) | bigint | NTILE(expr) OVER ( [PARTITION BY expr] ORDER BY expr ) | 将一个有序数据集划分成多个桶(由expr定义),并为每一行分配一个桶号。 |
percent rank() | double | PERCENT RANK () OVER ( [PARTITION BY expr] ORDER BY expr ) | 计算假想行R减1的等级,小于被评估的行数(在一个窗口分区内)。 |
precision | |||
rank() | bigint | RANK () OVER ( [PARTITION BY expr] ORDER BY expr ) | 计算一组有序的值中的行的排名。 排名标准相等的行的排名相同。 绑定行的数量被添加到等级号码来计算下一个等级值。 在这种情况下排名可能不是连续的数字。 |
row number() | bigint | ROW NUMBER () OVER ( [PARTITION BY expr] ORDER BY expr ) | 为其应用的每一行(窗口分区中的每一行或查询的每一行)分配一个唯一编号。 |