Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


LAST_VALUE

📄字数 679
👁️阅读量 加载中...

功能描述

获取有序结果集中的最后一个值。

语法格式

sql
LAST_VALUE(expr1) OVER ([analytic_clause])

输入参数

  • expr1:列名或表达式,用来指定输入数据。
  • OVER ([analytic_clause]):可选的分析子句,支持分组子句,排序子句以及范围子句,详情见analytic_clause

输出结果

INTEGER 数值类型,任意参数为 NULL 时,输出参数为 NULL

示例

sql
-- 建表并插入数据
SQL> CREATE TABLE emp (
         empno INT PRIMARY KEY,
         ename VARCHAR(10),
         deptno INT,
         sal DECIMAL(10,2),
         hiredate DATE
     );

SQL> INSERT INTO emp VALUES
     (7369, 'SMITH', 20, 800, '1980-12-17'),
     (7499, 'ALLEN', 30, 1600, '1981-02-20'),
     (7521, 'WARD', 30, 1250, '1981-02-22'),
     (7566, 'JONES', 20, 2975, '1981-04-02'),
     (7654, 'MARTIN', 30, 1250, '1981-09-28');

-- 统计窗口内排序后的最后一个值。
SQL>  SELECT empno, ename, deptno, sal, LAST_VALUE(sal) OVER ( PARTITION BY deptno ORDER BY sal ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM emp;

+-------+--------+--------+------+-------+
| EMPNO | ENAME  | DEPTNO | SAL  | EXPR1 |
+-------+--------+--------+------+-------+
| 7369  | SMITH  | 20     | 800  | 2975  |
| 7566  | JONES  | 20     | 2975 | 2975  |
| 7521  | WARD   | 30     | 1250 | 1600  |
| 7654  | MARTIN | 30     | 1250 | 1600  |
| 7499  | ALLEN  | 30     | 1600 | 1600  |
+-------+--------+--------+------+-------+