主要是lag和lead函数的用法,举两个例子来说明
这两个函数是偏移量函数,可以查出一个字段的上一个值或者下一个值,配合over来使用。
如全表查询select * from tmp_cmu t 结果如下
ITEM_NO PERIOD CMU
---------------- ------------ ----------
A01 201001 1000
A01 201002 1200
A01 201003 1190
A01 201004 1600
A01 201005 1980
A01 201006 1890
A01 201007 2100
A01 201008 2320
A01 201009 2540
A01 201010 2490
A01 201011 2610
现在首先用lead函数,这个函数是向上偏移,现在对cmu字段进行偏移查询,如下sql语句
select item_no,
period,lead(cmu, 1) over(partition by item_no,
substr(period, 1, 4) order by period) as cmup
from tmp_cmu
查询结果为:
ITEM_NO PERIOD CMUP
---------------- ------------ ----------
A01 201001 1200
A01 201002 1190
A01 201003 1600
A01 201004 1980
A01 201005 1890
A01 201006 2100
A01 201007 2320
A01 201008 2540
A01 201009 2490
A01 201010 2610
A01 201011 2890
可以看出cmu字段向上偏移了一位,lead(cmu,1)这里的参数是可以修改的,1代表偏移一位。
lag函数是向下偏移一位
select item_no,
period,lag(cmu, 1) over(partition by item_no,
substr(period, 1, 4) order by period) as cmup
from tmp_cmu
结果是:
ITEM_NO PERIOD CMUP
---------------- ------------ ----------
A01 201001
A01 201002 1000
A01 201003 1200
A01 201004 1190
A01 201005 1600
A01 201006 1980
A01 201007 1890
A01 201008 2100
A01 201009 2320
A01 201010 2540
A01 201011 2490
当然我这只是简单的举两个例子,还有更好的用法。等以后慢慢研究
分享到:
相关推荐
Lag和Lead函数可以在一次查询中取出同一字段的前N行的数据和后N行的值。这种操作可以使用对相同表的表连接来实现,不过使用LAG和LEAD有更高的效率。 代码如下:CREATE TABLE salaryByMonth( employeeNo varchar2(20)...
原创的matlab小程序,用于计算超前滞后相关,自带检验线,月资料和年资料都可以。
主要介绍了Oracle查询中OVER (PARTITION BY ..)用法,内容和代码大家参考一下。
Classical servo drive compensation used analog lead/lag filters. These lead/lag filter circuits have been implemented with analog operational amplifier circuits to compensate servo drives.
oracle lag 实现同一字段的前N行的数据和后N行的值.txt
AB PLC例程_本资料仅供学习参考
LEAD :LEAD与LAG相反,LEAD可以访问组中当前行之后的行 ROW_NUMBER :返回有序组中一行的偏移量,从而可用于按特定标准排序的行号 -----------------------------------------------------------------------------...
克隆ce git: git clone git@github.com:Nexey/LAG.git 本地安装 伊尔ESTconseilléD'安装倒avoir UNE基地去donnée区域 Il faut ensuite executive une commande avec le client Symfony quidémarreunservurgéné...
用于做两个时间序列的超前滞后相关分析,matlab语言
最近工作中用到 Mysql 要实现 oracle 的 lag 函数,网络上搜了不少文章,大都格式不清晰,或说明不清楚,所以自己做出例子来留个记录同时也分享一下。注解清晰,代码可直接用,建表样例数据sql都完整,直接可以跑。
Oracle分析函数RANK(),ROW_NUMBER(),LAG()等的使用方法 Oracle分析函数参考手册 开窗函数(over)详解
全数字超前—滞后门符号同步算法的FPGA实现的verilog源代码
ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序 而这个值就表示每组内部排序后的顺序编号(组内连续的唯一的) RANK() 类似,不过RANK 排序的时候跟派名次一样,...
8.5 Lead和Lag 202 8.5.1 语法和排序 202 8.5.2 例1:从前一行中返回一个值 203 8.5.3 理解数据行的位移 204 8.5.4 例2:从下一行中返回一个值 204 8.6 First_value和Last_value 205 8.6.1 例子:使用First_...
Oracle 分析函数详解 1. 自动汇总函数rollup,cube, 2. rank 函数, rank,dense_rank,row_number 3. lag,lead函数 4. sum,avg,的移动增加,移动平均数 5. ratio_to_report报表处理函数 6. first,last取基数的分析函数
华为CloudEngine 12800, 12800E, 8800, 7800, 6800, 5800系列交换机 M-LAG最佳实践
音响集成电路应用图-LAG665.pdf
Oracle的解析函数为检查间隙提供了一种要快捷得多的方法。它们使你在使用完整的、面向集合的SQL处理的同时,仍然能够看到下一个行(LEAD)或者前一行(LAG)的数值。文中介绍了Oracle解析函数的格式。