首页 > 数据库技术 > 详细

oracle下lag和lead分析函数

时间:2015-11-19 18:52:37      阅读:303      评论:0      收藏:0      [点我收藏+]

Lag和Lead分析函数可以在同一次查询中取出同一字段的前N行的数据(Lag)和后N行的数据(Lead)作为独立的列。

这种操作可以代替表的自联接,并且LAG和LEAD有更高的效率。

语法:

[sql] view plaincopy
 
  1. /*语法*/  
  2. lag(exp_str,offset,defval) over()  
  3. Lead(exp_str,offset,defval) over()  
  4. --exp_str要取的列  
  5. --offset取偏移后的第几行数据  
  6. --defval:没有符合条件的默认值  

 

1.

[sql] view plaincopy
 
  1. /*基础数据*/  
  2. select t.* from test1 t;  

技术分享

 

2.

[sql] view plaincopy
 
  1. /*用lag,lead分析以后的数据*/  
  2. select t.id, lag(t.name,1,0) over(order by id desc) max_v, t.name,    
  3. lead(t.name,1,0) over(order by id desc) min_v  
  4. from TEST1 t;  

技术分享

 

3.

[sql] view plaincopy
 
  1. /*满足查询结果的数据*/  
  2. select i.* from(select t.id, lag(t.name,1,0) over(order by id desc) max_v, t.name,    
  3. lead(t.name,1,0) over(order by id desc) min_v    
  4. from TEST1 t) i where i.name=‘3aa‘;  

技术分享

oracle下lag和lead分析函数

原文:http://www.cnblogs.com/likeju/p/4978187.html

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