ORACLE 分析统计函数,比对结果集中某两条数据并显示

来源:互联网 发布:远程手机控制软件 编辑:程序博客网 时间:2024/05/17 22:28

lead (列名,1) over (order by 列名)

用结果集中第一列和第二列进行比对,显示大的值

lag (列名,1) over (order by 列名)

用结果集中第一列和第二列的数据进行比对,显示比较小的数据;

如:

 SELECT t.*,lead (updatedate,1) over (order by updatedate) FROM office_workflowtracking t WHERE workflowinstance_guid='{BF89E5C8-FFFF-FFFF-8897-30FB00000538}'

 SELECT t.*,lag (updatedate,1) over (order by updatedate) FROM office_workflowtracking t WHERE workflowinstance_guid='{BF89E5C8-FFFF-FFFF-8897-30FB00000538}'

 

 

lead(列名,当前记录以下的第几条记录) over([partition by column] [order by 列序的列名])

over可以想成是某个范围内;partition by 即这个范围的结束;如果不写,则表示对整个结果集;

如:lead(a,3) over(partition by cols order by update) 即:比对当前结果集按update列进行排序,用当前记录的a列和当前记录下面的第3条记录(因为此例子中有partition by 表示如果第三条记录的cols列的值于当前列的值不同,则不进行比对,显示为Null)a列进行比对,并显示大的值

常用的方式有:

lead(a,1) over()

lead(a,1)over(order by cols)

lead(a)over(partition by cols)

lead(a)over(partition by cols order by update)

 

原创粉丝点击