LAG()和LEAD() 分析函数详解
Lag和Lead分析函数可以在同一次查询中取出同一字段的前N行的数据(Lag)和后N行的数据(Lead)作为独立的列。
在实际应用当中,若要用到取今天和昨天的某字段差值时,Lag和Lead函数的应用就显得尤为重要。当然,这种操作可以用表的自连接实现,但是LAG和LEAD与left join、rightjoin等自连接相比,效率更高,SQL更简洁。下面我就对这两个函数做一个简单的介绍。
函数语法如下:
lag(exp_str,offset,defval) over(partion by …order by …)
lead(exp_str,offset,defval) over(partion by …order by …)
其中exp_str是字段名
Offset是偏移量,即是上1个或上N个的值,假设当前行在表中排在第5行,则offset 为3,则表示我们所要找的数据行就是表中的第2行(即5-3=2)。Defval默认值,当两个函数取上N/下N个值,当在表中从当前行位置向前数N行已经超出了表的范围时,lag()函数将defval这个参数值作为函数的返回值,若没有指定默认值,则返回NULL,那么在数学运算中,总要给一个默认值才不会出错。
完整例子:
1.数据库中的原始数据
2.对SAL列:取上一个SAL列作为单独的列,若不指定默认值,则默认值为NULL
3.对SAL列:取上一个SAL列作为单独的列,指定默认值为0
4.对SAL列:取下一个SAL列作为单独的列,指定默认值为0
5.做运算:看薪水跟上次相比涨了多少
LAG()和LEAD() 分析函数详解相关推荐
- oracle 统计同比 环比,oracle求同比,环比函数(LAG与LEAD)的详解
Lag和Lead函数可以在一次查询中取出同一字段的前N行的数据和后N行的值.这种操作可以使用对相同表的表连接来实现,不过使用LAG和LEAD有更高的效率. 复制代码 代码如下: CREATE TABL ...
- oracle按年同比环比,oracle求同比,环比函数(LAG与LEAD)的详解
Lag和Lead函数可以在一次查询中取出同一字段的前N行的数据和后N行的值.这种操作可以使用对相同表的表连接来实现,不过使用LAG和LEAD有更高的效率. 相关操作代码如下: CREATE TABLE ...
- mysql lag和lead_Oracle的LAG和LEAD分析函数
Oracle的LAG和LEAD分析函数 Lag函数可以在一次查询中取出当前行的同一字段的前面第N行的数据. Lead 函数可以在一次查询中取出当前行的同一字段的后 面第 N行的. 这种操作可以使用对相 ...
- oracle下lag和lead分析函数
Lag和Lead分析函数可以在同一次查询中取出同一字段的前N行的数据(Lag)和后N行的数据(Lead)作为独立的列. 这种操作可以代替表的自联接,并且LAG和LEAD有更高的效率. 语法: [sql ...
- 常用Oracle分析函数详解
原文链接:http://www.cnblogs.com/benio/archive/2011/06/01/2066106.html ---------------------------------- ...
- oracle的LAG和LEAD分析函数
Lag和Lead函数可以在一次查询中取出同一字段的前N行的数据和后N行的值.这种操作可以使用对相同表的表连接来实现,不过使用LAG和LEAD有更高的效率. lag的语法如下: lead的语法如下: l ...
- lag和lead 分析函数
oracle 的分析函数是非常好的一个功能,借助它们,我们可以很方便的实现一些特殊的语句需求,省去了自己实现的诸多麻烦. 今天用到了lag 和lead 这两个分析函数,稍稍整理一下. lag 和le ...
- oracle 按照lead,Oracle之Lead和Lag偏移量函数使用详解
Oracle有两个函数:LEAD和LAG,这两个函数都是用来计算偏移量的分析函数,这两个函数的用法相同. Oracle官方文档解释是: LEADis an analytic function. It ...
- OpenCV3学习(9.2)连通域分析函数详解connectedComponents()和connectedComponentsWithStats()
在OpenCV 3中提供了两个很好的函数,在OpenCV 2中没有. (1)connectedComponents() (2)connectedComponentsWithStats() 对应的官方文 ...
最新文章
- Replication Controller、Replica Set
- kuka机器人焊接飞溅大_机器人专用三维焊接平台低温现象得到解决
- 羊车门问题python_python编程羊车门问题代码示例
- Magicodes.IE已支持导出Word、Pdf和Html
- python多维数组运用_使用Python将文件读入多维数组
- 介绍我的一位同事的开源RSS阅读器
- c++ 转bcd码_8421BCD码转换为十进制
- 阿里云ECS服务器部署HADOOP集群(三):ZooKeeper 完全分布式集群搭建
- 数据科学入门与实战:玩转pandas之三
- ASP.NET MVC 4 (二)控制器
- Linux文件系统格式EXT3,EXT4和XFS的区别
- 华为鸿蒙状态栏,华为手机状态栏图标都代表什么
- macOS更新系统到12.6后git无法使用
- nmap 安装和使用
- 3.7 广域网(ppp协议、HDLC协议)
- css超级无敌不会,一大堆疑问大全
- feign.codec.DecodeException异常解决方案
- 【欧姆龙控制器NX1系列调研】
- 远程终端服务器连接(mstsc)步骤
- 参加面试除了带简历外还要带哪些去面试