Oracle-分析函数之取上下行数据lag()和lead()
发布时间:2020-12-12 16:39:08 所属栏目:百科 来源:网络整理
导读:概述 ORACLE函数系列: Oracle常见函数大全 Oracle-分析函数之连续求和sum(…) over(…) Oracle-分析函数之排序值rank()和dense_rank() Oracle-分析函数之排序后顺序号row_number() Oracle-分析函数之取上下行数据lag()和lead() 这两个函数是偏移量函数,可
概述ORACLE函数系列: Oracle常见函数大全 Oracle-分析函数之连续求和sum(…) over(…) Oracle-分析函数之排序值rank()和dense_rank() Oracle-分析函数之排序后顺序号row_number() Oracle-分析函数之取上下行数据lag()和lead() 这两个函数是偏移量函数,可以查出一个字段的上一个值或者下一个值,配合over来使用。 lead函数,这个函数是向上偏移. 语法【语法】 lag(EXPR,<OFFSET>,<DEFAULT>)
LEAD(EXPR,<DEFAULT>)
【功能】表示根据COL1分组,在分组内部根据 COL2排序,而这个值就表示每组内部排序后的顺序编号(组内连续的唯一的) lead () 下一个值 lag() 上一个值 【参数】
exp_str 是要做对比的字段 【说明】Oracle分析函数 栗子create table LEAD_TABLE ( CASEID VARCHAR2(10),STEPID VARCHAR2(10),ACTIONDATE DATE )
insert into LEAD_TABLE values('Case1','Step1',to_date('20161101','yyyy-mm-dd'));
insert into LEAD_TABLE values('Case1','Step2',to_date('20161102','Step3',to_date('20161103','Step4',to_date('20161104','Step5',to_date('20161105',to_date('20161106','Step6',to_date('20161107',to_date('20161201','yyyy-mm-dd'));
insert into LEAD_TABLE values('Case2',to_date('20161202',to_date('20161203','yyyy-mm-dd'));
commit;
数据规格: 输出当前 和 之前 之后的date 和 stepselect a.caseid,a.stepid as currentStepID,a.actiondate as currentActionDate,lead(stepid) over(partition by a.caseid order by a.stepid) nextStep,lead(actiondate) over(partition by a.caseid order by a.stepid) nextActionDate,lag(stepid) over(partition by a.caseid order by a.stepid) preStep,lag(actiondate) over(partition by a.caseid order by a.stepid) preActionDate from lead_table a ;
进一步统计一下两者的相差天数select caseid,stepid,actiondate,nextactiondate,nextactiondate - actiondate datebetween from (select caseid,lead(stepid) over(partition by caseid order by actiondate) nextstepid,lead(actiondate) over(partition by caseid order by actiondate) nextactiondate,lag(stepid) over(partition by caseid order by actiondate) prestepid,lag(actiondate) over(partition by caseid order by actiondate) preactiondate from lead_table) ; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |