LAG 是取前N行的数据
LEAD是取后去N行数据
语法:
LAG(exp_str,offset,defval)over()
LEAD(exp_str,offset,defval)over()
--exp_str 要取的列
--offset 取偏移后的第几行数据
--defval 没有符合条件的默认值
eg.
droptable tabA;
createtable tabA(colA number);
insertinto tabA values(1);
insertinto tabA values(2);
insertinto tabA values(4);
insertinto tabA values(8);
insertinto tabA values(16);
insertinto tabA values(32);
insertinto tabA values(64);
select
colA c1,
lag(colA,1,0)over(orderbyrownum) c2,
lag(colA,2,99)over(orderbyrownum) c3, ---99位默认值
lead(colA,1,0)over(orderbyrownum) c4, ---Lead是向下偏移的意思
colA-lag(colA,1,0)over(orderbyrownum) c5
from tabA;
C1 C2 C3 C4 C5
1 1 0 99 2 1
2 2 1 99 4 1
3 4 2 1 8 2
4 8 4 2 16 4
5 16 8 4 32 8
6 32 16 8 64 16
7 64 32 16 0 32
select
colA c1,
lag(colA,1,0)over(orderbyrownum) c2,
lag(colA,2,99)over(orderbyrownum) c3,
lead(colA,1,0)over(orderbyrownumdesc) c4, ----------如果此处有desc,则以这个为倒序的顺序,
colA-lag(colA,1,0)over(orderbyrownum) c5
from tabA;
C1 C2 C3 C4 C5
1 64 32 16 32 32
2 32 16 8 16 16
3 16 8 4 8 8
4 8 4 2 4 4
5 4 2 1 2 2
6 2 1 99 1 1
7 1 0 99 0 1
相关推荐
Lag和Lead函数可以在一次查询中取出同一字段的前N行的数据和后N行的值。这种操作可以使用对相同表的表连接来实现,不过使用LAG和LEAD有更高的效率。 代码如下:CREATE TABLE salaryByMonth( employeeNo varchar2(20)...
Oracle 分析函数详解 1. 自动汇总函数rollup,cube, 2. rank 函数, rank,dense_rank,row_number 3. lag,lead函数 4. sum,avg,的移动增加,移动平均数 5. ratio_to_report报表处理函数 6. first,last取基数的分析函数
Oracle分析函数——函数列表 SUM :该函数计算组中表达式的累积和 MIN :在一个组中的数据窗口中查找表达式的最小值 MAX :在一个组中的数据窗口中查找表达式的最大值 AVG :用于计算一个组和数据窗口内表达式的...
最近工作中用到 Mysql 要实现 oracle 的 lag 函数,网络上搜了不少文章,大都格式不清晰,或说明不清楚,所以自己做出例子来留个记录同时也分享一下。注解清晰,代码可直接用,建表样例数据sql都完整,直接可以跑。
1,数值型函数(abs()、sign()、ceil()、floor()、power()、exp()、round()...);...6,分析函数(sum(...) over(...)、dense_rank、row_number()、lag()...); 7,其它函数(decode()、nvl()、nvl2()、least()...);
oracle lag 实现同一字段的前N行的数据和后N行的值.txt
1、oracle分析函数 中文: 主要含: rank() 和 dense_rank() first_value()和last_value() row_number() LAG() range开窗函数 2、oracle分析函数 英文: 比较详细
Oracle分析函数RANK(),ROW_NUMBER(),LAG()等的使用方法 Oracle分析函数参考手册 开窗函数(over)详解
从论坛搜到的,感觉还不错,整理成了word文档,希望对大家也有用,同时也感谢原作者。...3. lag,lead函数 4. sum,avg,的移动增加,移动平均数 5. ratio_to_report报表处理函数 6. first,last取基数的分析函数
原创的matlab小程序,用于计算超前滞后相关,自带检验线,月资料和年资料都可以。
Oracle的解析函数为检查间隙提供了一种要快捷得多的方法。它们使你在使用完整的、面向集合的SQL处理的同时,仍然能够看到下一个行(LEAD)或者前一行(LAG)的数值。文中介绍了Oracle解析函数的格式。
主要介绍了Oracle查询中OVER (PARTITION BY ..)用法,内容和代码大家参考一下。
是第3名 LAG 表示 分组排序后 ,组内后面一条记录减前面一条记录的差,第一条可返回 NULL BTW: EXPERT ONE ON ONE 上讲的最详细,还有很多相关特性,文档看起来比较费劲 row_number()和rownum差不多,功能更强一点...
本文主要介绍Oracle窗口函数的用法,讲解全统计、滚动统计(累积/均值)、根据时间范围统计、first_value/last_value、比较相邻记录具体的使用方法,需要的朋友可以参考下。
本文章通过图文形式介绍了常用的取值窗口函数和排名窗口函数。 取值窗口函数:lag和lead函数不支持动态的窗口大小,而是以整个分区(PARTITION BY)作为分析的窗口。 排名窗口函数不支持动态的窗口大小,而是以整个...
SQL SERVER 2012 T-SQL新增几个聚合函数: FIRST_VALUE LAST_VALUE LEAD LAG,今天我们首先来简单分析下LEAD,希望对大家有所帮助,能够尽快熟悉这个聚合函数
本文是对Oracle中分析函数做的总结,主要总结了前几篇关于分析函数、窗口函数、报表函数文章的内容,需要的朋友可以参考下。