- CUME_DIST()
描述:CUME_DIST函数为各组内对应值生成累积分布序号。即根据公式(小于等于当前值的数据行数)/(该分组总行数totalrows)计算所得的相对序号。
返回值类型:DOUBLE PRECISION
示例:
gbase=# SELECT d_moy, d_fy_week_seq, cume_dist() OVER(PARTITION BY d_moy ORDER BY d_fy_week_seq) FROM public.date_dim e_dim WHERE d_moy < 4 AND d_fy_week_seq < 7 ORDER BY 1,2;
d_moy | d_fy_week_seq | cume_dist
-------+---------------+------------------
1 | 1 | .233333333333333
1 | 1 | .233333333333333
1 | 1 | .233333333333333
1 | 1 | .233333333333333
1 | 1 | .233333333333333
1 | 1 | .233333333333333
1 | 1 | .233333333333333
1 | 2 | .466666666666667
1 | 2 | .466666666666667
1 | 2 | .466666666666667
1 | 2 | .466666666666667
1 | 2 | .466666666666667
1 | 2 | .466666666666667
1 | 2 | .466666666666667
1 | 3 | .7
1 | 3 | .7
1 | 3 | .7
1 | 3 | .7
1 | 3 | .7
1 | 3 | .7
1 | 3 | .7
1 | 4 | .933333333333333
1 | 4 | .933333333333333
1 | 4 | .933333333333333
1 | 4 | .933333333333333
1 | 4 | .933333333333333
1 | 4 | .933333333333333
1 | 4 | .933333333333333
1 | 5 | 1
1 | 5 | 1
2 | 5 | .416666666666667
2 | 5 | .416666666666667
2 | 5 | .416666666666667
2 | 5 | .416666666666667
2 | 5 | .416666666666667
2 | 6 | 1
2 | 6 | 1
2 | 6 | 1
2 | 6 | 1
2 | 6 | 1
2 | 6 | 1
2 | 6 | 1
(42 rows)
- NTILE(num_buckets integer)
描述:NTILE函数根据num_buckets integer将有序的数据集合平均分配到num_buckets所指定数量的桶中,并将桶号分配给每一行。分配时应尽量做到平均分配。
返回值类型:INTEGER
示例:
gbase=# SELECT d_moy, d_fy_week_seq, ntile(3) OVER(PARTITION BY d_moy ORDER BY d_fy_week_seq) FROM public.date_dim WHERE d_moy < 4 AND d_fy_week_seq < 7 ORDER BY 1,2;
d_moy | d_fy_week_seq | ntile
-------+---------------+-------
1 | 1 | 1
1 | 1 | 1
1 | 1 | 1
1 | 1 | 1
1 | 1 | 1
1 | 1 | 1
1 | 1 | 1
1 | 2 | 1
1 | 2 | 1
1 | 2 | 1
1 | 2 | 2
1 | 2 | 2
1 | 2 | 2
1 | 2 | 2
1 | 3 | 2
1 | 3 | 2
1 | 3 | 2
1 | 3 | 2
1 | 3 | 2
1 | 3 | 2
1 | 3 | 3
1 | 4 | 3
1 | 4 | 3
1 | 4 | 3
1 | 4 | 3
1 | 4 | 3
1 | 4 | 3
1 | 4 | 3
1 | 5 | 3
1 | 5 | 3
2 | 5 | 1
2 | 5 | 1
2 | 5 | 1
2 | 5 | 1
2 | 5 | 2
2 | 6 | 2
2 | 6 | 2
2 | 6 | 2
2 | 6 | 3
2 | 6 | 3
2 | 6 | 3
2 | 6 | 3
(42 rows)
- LAG(value any [, offset integer [, default any ]])
描述:LAG函数为各组内对应值生成滞后值。即当前值对应的行数往前偏移offset位后所得行的value值作为序号。若经过偏移后行数不存在,则对应结果取为default值。若无指定,在默认情况下,offset取为1,default值取为NULL。
返回值类型:与参数数据类型相同。
示例:
gbase=# SELECT d_moy, d_fy_week_seq, lag(d_moy,3,null) OVER(PARTITION BY d_moy ORDER BY d_fy_week_seq) FROM public.date_dim WHERE d_moy < 4 AND d_fy_week_seq < 7 ORDER BY 1,2;
d_moy | d_fy_week_seq | lag
-------+---------------+-----
1 | 1 |
1 | 1 |
1 | 1 |
1 | 1 | 1
1 | 1 | 1
1 | 1 | 1
1 | 1 | 1
1 | 2 | 1
1 | 2 | 1
1 | 2 | 1
1 | 2 | 1
1 | 2 | 1
1 | 2 | 1
1 | 2 | 1
1 | 3 | 1
1 | 3 | 1
1 | 3 | 1
1 | 3 | 1
1 | 3 | 1
1 | 3 | 1
1 | 3 | 1
1 | 4 | 1
1 | 4 | 1
1 | 4 | 1
1 | 4 | 1
1 | 4 | 1
1 | 4 | 1
1 | 4 | 1
1 | 5 | 1
1 | 5 | 1
2 | 5 |
2 | 5 |
2 | 5 |
2 | 5 | 2
2 | 5 | 2
2 | 6 | 2
2 | 6 | 2
2 | 6 | 2
2 | 6 | 2
2 | 6 | 2
2 | 6 | 2
2 | 6 | 2
(42 rows)
- LEAD(value any [, offset integer [, default any ]])
描述:LEAD函数为各组内对应值生成提前值。即当前值对应的行数向后偏移offset位后所得行的value值作为序号。若经过向后偏移后行数超过当前组内的总行数,则对应结果取为default值。若无指定,在默认情况下,offset取为1,default值取为NULL。
返回值类型:与参数数据类型相同。
示例:
gbase=# SELECT d_moy, d_fy_week_seq, lead(d_fy_week_seq,2) OVER(PARTITION BY d_moy ORDER BY d_fy_week_seq) FROM public.date_dim WHERE d_moy < 4 AND d_fy_week_seq < 7 ORDER BY 1,2;
d_moy | d_fy_week_seq | lead
-------+---------------+------
1 | 1 | 1
1 | 1 | 1
1 | 1 | 1
1 | 1 | 1
1 | 1 | 1
1 | 1 | 2
1 | 1 | 2
1 | 2 | 2
1 | 2 | 2
1 | 2 | 2
1 | 2 | 2
1 | 2 | 2
1 | 2 | 3
1 | 2 | 3
1 | 3 | 3
1 | 3 | 3
1 | 3 | 3
1 | 3 | 3
1 | 3 | 3
1 | 3 | 4
1 | 3 | 4
1 | 4 | 4
1 | 4 | 4
1 | 4 | 4
1 | 4 | 4
1 | 4 | 4
1 | 4 | 5
1 | 4 | 5
1 | 5 |
1 | 5 |
2 | 5 | 5
2 | 5 | 5
2 | 5 | 5
2 | 5 | 6
2 | 5 | 6
2 | 6 | 6
2 | 6 | 6
2 | 6 | 6
2 | 6 | 6
2 | 6 | 6
2 | 6 |
2 | 6 |
(42 rows)