窗口函数
窗口函数的主要应用包括在窗口分区内的排序、聚合、排名以及其他复杂计算。云原生数据仓库 AnalyticDB PostgreSQL 版兼容PostgreSQL中所有的窗口函数。本文简单列举云原生数据仓库 AnalyticDB PostgreSQL 版兼容的窗口函数。
PostgreSQL中窗口函数的详细使用方法,请参见PostgreSQL官方文档:窗口函数。
通用窗口函数
函数名称 | 返回类型 | 描述 |
|
| 当前行在窗口分区中的行号,从1计数。 |
|
| 当前行在窗口分区内的排名,排名不连续。如果存在多个相同值,则这些相同值的排名相同,且下一个不同值的排名会跳过相应数量。例如,三个相同值排名为1,那么下一个不同值的排名为4。 |
|
| 当前行在窗口分区内的排名,排名连续。如果存在多个相同值,则这些相同值的排名相同,且下一个不同值的排名不会跳过相应数量。例如,三个相同值排名为1,那么下一个不同值的排名为2。 |
|
| 当前行在窗口分区内的相对排名,返回值在0到1之间。计算公式为: (rank-1) / (窗口分区的总行数-1)。其中rank为该行数据的rank()窗口函数的返回结果。相同值有相同的percent_rank()值。 |
|
| 返回当前行的累积分布,计算公式为:(在当前行之前的行数+与当前行值相同的行数) / 窗口分区总行数。 |
|
| 将窗口分区内的数据尽可能等分为指定的份数,并返回当前行所在的数据等份的编号, |
| 和 | 返回窗口分区内当前行前面第n(n为offset的取值)行的值。如果当前行为第1行,则返回默认值。
|
| 和 | 返回窗口分区内当前行后面第n(n为offset的取值)行的值。如果当前行为最后一行,则返回默认值。
|
| 和 | 返回每个窗口分区的第一行的值。 |
| 和 | 返回每个窗口分区的最后一行的值。 |
| 和 | 返回每个窗口分区的第n行数据(行从1计数,nth必须为正整数),如果不存在第n行则返回空值。 说明
|