openGauss SQL参考—函数和操作符:窗口函数(5)
-
LAST_VALUE(value any)
描述:LAST_VALUE函数取各组内的最后一个值作为返回结果。
返回值类型:与参数数据类型相同。
示例:
openGauss=# SELECT d_moy, d_fy_week_seq, last_value(d_moy) OVER(PARTITION BY d_moy ORDER BY d_fy_week_seq) FROM tpcds.date_dim WHERE d_moy < 4 AND d_fy_week_seq < 6 ORDER BY 1,2; d_moy | d_fy_week_seq | last_value -------+---------------+------------ 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 | 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 2 | 5 | 2 2 | 5 | 2 2 | 5 | 2 2 | 5 | 2 (35 rows) -
NTH_VALUE(value any, nth integer)
描述:NTH_VALUE函数返回该组内的第nth行作为结果。若该行不存在,则默认返回NULL。
返回值类型:与参数数据类型相同。
示例:
openGauss=# SELECT d_moy, d_fy_week_seq, nth_value(d_fy_week_seq,6) OVER(PARTITION BY d_moy ORDER BY d_fy_week_seq) FROM tpcds.date_dim WHERE d_moy < 4 AND d_fy_week_seq < 6 ORDER BY 1,2; d_moy | d_fy_week_seq | nth_value -------+---------------+----------- 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 | 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 | 5 | (35 rows) -
row_count()
描述:上一条语句影响的行数。
- 若上次执行的是DDL语句,比如create table或者drop语句,会返回0。
- 对于insert/update/delete语句,以及其他会涉及元组修改的语句,会返回具体影响的行数。
- 对于select语句,若为select into, 会返回导出的元组数量,反之若语句不涉及修改则返回-1。
返回值类型:BIGINT
示例:
td_db=# insert into test_any_value values(1,1),(2,1),(3,2),(4,2); INSERT 0 4 td_db=# select row_count(); row_count ----------- 4 (1 row)

浙公网安备 33010602011771号