• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    oracle求同比,环比函数(LAG与LEAD)的详解

    Lag和Lead函数可以在一次查询中取出同一字段的前N行的数据和后N行的值。这种操作可以使用对相同表的表连接来实现,不过使用LAG和LEAD有更高的效率。

    复制代码 代码如下:

    CREATE TABLE salaryByMonth
    (
     employeeNo varchar2(20),
     yearMonth varchar2(6),
     salary number
    ) ;
    insert into SALARYBYMONTH (EMPLOYEENO, YEARMONTH, SALARY)
    values (1, '200805', 500);
    insert into SALARYBYMONTH (EMPLOYEENO, YEARMONTH, SALARY)
    values (1, '200802', 150);
    insert into SALARYBYMONTH (EMPLOYEENO, YEARMONTH, SALARY)
    values (1, '200803', 200);
    insert into SALARYBYMONTH (EMPLOYEENO, YEARMONTH, SALARY)
    values (1, '200804', 300);
    insert into SALARYBYMONTH (EMPLOYEENO, YEARMONTH, SALARY)
    values (1, '200708', 100);
    commit;

    SELECT EMPLOYEENO
          ,YEARMONTH
          ,SALARY
          ,MIN(SALARY) KEEP(DENSE_RANK FIRST ORDER BY YEARMONTH) OVER(PARTITION BY EMPLOYEENO) FIRST_SALARY -- 基比分析 salary/first_salary
          ,LAG(SALARY, 1, 0) OVER(PARTITION BY EMPLOYEENO ORDER BY YEARMONTH) AS PREV_SAL -- 环比分析,与上个月份进行比较
          ,LAG(SALARY, 12, 0) OVER(PARTITION BY EMPLOYEENO ORDER BY YEARMONTH) AS PREV_12_SAL -- 同比分析,与上个年度相同月份进行比较   
          ,SUM(SALARY) OVER(PARTITION BY EMPLOYEENO, SUBSTR(YEARMONTH, 1, 4) ORDER BY YEARMONTH RANGE UNBOUNDED PRECEDING) LJ --累计值
      FROM SALARYBYMONTH
     ORDER BY EMPLOYEENO
             ,YEARMONTH


    上一篇:oracle合并列的函数wm_concat的使用详解
    下一篇:oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    oracle求同比,环比函数(LAG与LEAD)的详解 oracle,求,同比,环比,函数,