您的位置:首页 > 数据库 > Oracle

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

2013-11-07 09:51 417 查看
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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: