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