源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-07-31 18:51 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:oracle求同比,环比函数(LAG与LEAD)的详解
Lag和Lead函数可以在一次查询中取出同一字段的前N行的数据和后N行的值。这种操作可以使用对相同表的表连接来实现,不过使用LAG和LEAD有更高的效率。
[u]复制代码[/u] 代码如下:
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[b]-- 环比分析,与上个月份进行比较 [/b]      ,LAG(SALARY, 12, 0) OVER(PARTITION BY EMPLOYEENO ORDER BY YEARMONTH) AS PREV_12_SAL[b]-- 同比分析,与上个年度相同月份进行比较    [/b]      ,SUM(SALARY) OVER(PARTITION BY EMPLOYEENO, SUBSTR(YEARMONTH, 1, 4) ORDER BY YEARMONTH RANGE UNBOUNDED PRECEDING) LJ --累计值   FROM SALARYBYMONTH  ORDER BY EMPLOYEENO          ,YEARMONTH
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部