通过检查增量值来创建Oracle函数

时间:2010-06-10 10:07:08

标签: oracle

如何检查Oracle函数是否在过去3年内特定字段中的值增加。假设一个表是公司,如果我们只想考虑公司过去3年的利润增长的价值。

1 个答案:

答案 0 :(得分:1)

SELECT empno, sal,
LEAD(sal, 1, 0) OVER (PARTITION BY dept ORDER BY id) NEXT_SAL,
CASE WHEN sal <= LEAD(sal, 1, MAX(SAL)) OVER (PARTITION BY dept ORDER BY sal) 
     THEN 'OK'
     ELSE 'NOT OK'
END STATUS
FROM emp
ORDER BY deptno, sal DESC;

如果您将所有状态设置为“确定”,则值为递增顺序,否则为 有一些减少。

LEAD 能够计算下一行(将在当前行之后的行)上的表达式,并将值返回到当前行。 LEAD的一般语法如下所示:

LEAD(sql_expr,offset,default)OVER(analytic_clause)

  1. sql_expr是从前导行计算的表达式。
  2. offset是前导行相对于当前行的索引。 offset是一个正整数,默认值为1。
  3. default是当偏移量指向分区范围之外的行时返回的值。