参考文献

Window Functions

语法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
over_clause:
{OVER (window_spec) | OVER window_name}

window_spec:
[window_name] [partition_clause] [order_clause] [frame_clause]
partition_clause:
PARTITION BY expr [, expr] ...
order_clause:
ORDER BY expr [ASC|DESC] [, expr [ASC|DESC]] ...
frame_clause:
frame_units frame_extent

frame_units:
{ROWS | RANGE}
frame_extent:
{frame_start | frame_between}

frame_between:
BETWEEN frame_start AND frame_end

frame_start, frame_end: {
CURRENT ROW
| UNBOUNDED PRECEDING
| UNBOUNDED FOLLOWING
| expr PRECEDING
| expr FOLLOWING
}

window_function() OVER (
[PARTITION BY partition_expression]
[ORDER BY order_expression [{ASC | DESC}]]
[{ROWS | RANGE} frame_clause]
)

Functions

Name Description
CUME_DIST() 累积分布值
DENSE_RANK() 分区内当前行的等级(无间隔)
FIRST_VALUE() 窗口帧中第一行的参数值
LAG() 落后于分区内当前行的那一行的参数值
LAST_VALUE() 窗口帧中最末行的参数值
LEAD() 领先于分区内当前行的参数值
NTH_VALUE() 窗口帧中第n行的参数值
NTILE() 分区内当前行的桶的编号
PERCENT_RANK() 百分比排名值
RANK() 分区中当前行的等级(有间隔)
ROW_NUMBER() 分区内当前行的编号