Hologres兼容PostgreSQL,支持使用标准的PostgreSQL语法进行开发。

Hologres已支持的窗口函数列表如下。当前Hologres版本支持的函数是PostgreSQL的一个子集,函数的使用方法请参见窗口函数
函数名 描述 用例 结果
row_number() 返回当前行在分区中的编号。
说明 从1开始计数。
row_number() over (order by c1) c1 | row_number ----+------------ a | 1 a | 2 b | 3 c | 4(4 rows)
rank() 返回当前行在分区中的排名。
说明 Rank函数是跳跃排序,生成的序号有可能不连续。
rank() over (order by c1) c1 | rank ----+------ a | 1 a | 1 b | 3 c | 4(4 rows)
dense_rank() 返回当前行在分区中的排名。
说明 Dense_Rank函数生成的序号是连续的。
dense_rank() over (order by c1) c1 | dense_rank ----+------------ a | 1 a | 1 b | 2 c | 3(4 rows)
percent_rank() 求当前行在分区中的百分比排名(rank-1)/(总分区行-1) percent_rank() over (order by c1) c1 | percent_rank ----+------------------- a | 0 a | 0 b | 0.666666666666667 c | 1(4 rows)
lag() 返回分区中当前行的前Offset行的值。
说明 如果当前行没有前Offset行,则返回默认值。
c1, lag(c1) over (order by c1) c1 | lag ----+----- a | a | a b | a c | b(4 rows)
lead() 返回分区中当前行的后Offset行的值。
说明 如果当前行没有后Offset行,则返回默认值。
c1, lead(c1) over (order by c1) c1 | lead ----+------ a | a a | b b | c c | (4 rows)
first_value() 返回在窗口框架的第一行计算出的值。 c1, first_value(c1) over (order by c1) c1 | first_value ----+------------- a | a a | a b | a c | a(4 rows)
last_value() 返回在窗口框架的最后一行计算出的值。 c1, last_value(c1) over (order by c1) c1 | last_value ----+------------ a | a a | a b | b c | c(4 rows)