oracle下lag和lead分析函数

本文介绍了Lag和Lead分析函数的基本用法及其在数据库查询中的应用实例。这两种函数能够高效地获取表中前N行和后N行的数据,替代传统的自连接方式,提升查询性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

语法:


 
  1. /*语法*/

  2. lag(exp_str,offset,defval) over()

  3. Lead(exp_str,offset,defval) over()

  4. --exp_str要取的列

  5. --offset取偏移后的第几行数据

  6. --defval:没有符合条件的默认值

1.


 
  1. /*基础数据*/

  2. select t.* from test1 t;

 

2.


 
  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.


 
  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';

可以用于查询下一条数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值