语法
使用方法
LAG是一个分析函数。它可以在不使用自连接的情况下同时访问到一个表的多行数据。给一个或多个列名和一个游标位置(位移),LAG可以访问当前行之前的行,行之间间隔的行数为位移值。
语法树中的offset(位移)参数是可选的,可以指定一个大于0的整数,如果不指定offset(位移)参数函数会默认位移为1。语法树中的default值也是可选的,这个default值是当位移值超过查询范围时函数返回行的列值的返回值,如果不指定这个值,这个值默认为null。
语法树中的{RESPECT | IGNORE} NULLS决定value_expr的null值是否包含在计算中或从计算中删除。默认是RESPECT NULLS,即包含value_expr的null值。
对于value_expr,不能使用LAG或者其他的分析函数嵌套分析函数。
value_expr的有效值是常量、列、非解析函数、函数表达式或涉及其中任何一个的表达式。
例子
SELECT hire_date, last_name, salary,
LAG(salary, 1, 0) OVER (ORDER BY hire_date) AS prev_sal
FROM employees
WHERE job_id = 'PU_CLERK'
ORDER BY hire_date;
HIRE_DATE LAST_NAME SALARY PREV_SAL
--------- ------------------------- ---------- ----------
18-MAY-03 Khoo 3100 0
24-JUL-05 Tobias 2800 3100
24-DEC-05 Baida 2900 2800
15-NOV-06 Himuro 2600 2900
10-AUG-07 Colmenares 2500 2600