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) |
在文档使用中是否遇到以下问题
更多建议
匿名提交