首页 > 数据库技术 > 详细

oracle分析函数

时间:2016-08-22 10:34:15      阅读:221      评论:0      收藏:0      [点我收藏+]

在工作中使用到的分析函数主要有两种,一个是sum () over (partition by ……order by ……)另外一个就是 lead(lag)over (|partition by|order by )

sum不用多说,主要就是按照partition by 内的字段,分别合计,返回若干行,而不是像group by那样只返回一行。

lead(lag)是按照order by 的排序方式,在partition by 内的范围内,向下(上)查询N条记录。

一个简单的例子:

with tmp as(  

 
select ‘1‘ id ,‘aa‘ name from dual union all  
select ‘2‘ id ,‘bb‘ name from dual  
)  
select a.*,  
       lag(name,1) over (order by id desc) lag  
from tmp a 
原始记录查询技术分享这样的,执行该分析函数,则为这样的:技术分享
按照id 倒叙的方式,查询出改行记录的上一行数据,因为id=2的时候,上一行为空,所以结果为空。而id=1的上一条name记录结果为bb,因此,该行记录的lag为bb

oracle分析函数

原文:http://www.cnblogs.com/mht91919/p/5794528.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!