Oracle函数之LAG函数

语法

Oracle函数之LAG函数_第1张图片

使用方法

  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

你可能感兴趣的:(Oracle)