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() 分析函数详解相关推荐

  1. oracle 统计同比 环比,oracle求同比,环比函数(LAG与LEAD)的详解

    Lag和Lead函数可以在一次查询中取出同一字段的前N行的数据和后N行的值.这种操作可以使用对相同表的表连接来实现,不过使用LAG和LEAD有更高的效率. 复制代码 代码如下: CREATE TABL ...

  2. oracle按年同比环比,oracle求同比,环比函数(LAG与LEAD)的详解

    Lag和Lead函数可以在一次查询中取出同一字段的前N行的数据和后N行的值.这种操作可以使用对相同表的表连接来实现,不过使用LAG和LEAD有更高的效率. 相关操作代码如下: CREATE TABLE ...

  3. mysql lag和lead_Oracle的LAG和LEAD分析函数

    Oracle的LAG和LEAD分析函数 Lag函数可以在一次查询中取出当前行的同一字段的前面第N行的数据. Lead 函数可以在一次查询中取出当前行的同一字段的后 面第 N行的. 这种操作可以使用对相 ...

  4. oracle下lag和lead分析函数

    Lag和Lead分析函数可以在同一次查询中取出同一字段的前N行的数据(Lag)和后N行的数据(Lead)作为独立的列. 这种操作可以代替表的自联接,并且LAG和LEAD有更高的效率. 语法: [sql ...

  5. 常用Oracle分析函数详解

    原文链接:http://www.cnblogs.com/benio/archive/2011/06/01/2066106.html ---------------------------------- ...

  6. oracle的LAG和LEAD分析函数

    Lag和Lead函数可以在一次查询中取出同一字段的前N行的数据和后N行的值.这种操作可以使用对相同表的表连接来实现,不过使用LAG和LEAD有更高的效率. lag的语法如下: lead的语法如下: l ...

  7. lag和lead 分析函数

    oracle 的分析函数是非常好的一个功能,借助它们,我们可以很方便的实现一些特殊的语句需求,省去了自己实现的诸多麻烦.  今天用到了lag 和lead 这两个分析函数,稍稍整理一下. lag 和le ...

  8. oracle 按照lead,Oracle之Lead和Lag偏移量函数使用详解

    Oracle有两个函数:LEAD和LAG,这两个函数都是用来计算偏移量的分析函数,这两个函数的用法相同. Oracle官方文档解释是: LEADis an analytic function. It ...

  9. OpenCV3学习(9.2)连通域分析函数详解connectedComponents()和connectedComponentsWithStats()

    在OpenCV 3中提供了两个很好的函数,在OpenCV 2中没有. (1)connectedComponents() (2)connectedComponentsWithStats() 对应的官方文 ...

最新文章

  1. Replication Controller、Replica Set
  2. kuka机器人焊接飞溅大_机器人专用三维焊接平台低温现象得到解决
  3. 羊车门问题python_python编程羊车门问题代码示例
  4. Magicodes.IE已支持导出Word、Pdf和Html
  5. python多维数组运用_使用Python将文件读入多维数组
  6. 介绍我的一位同事的开源RSS阅读器
  7. c++ 转bcd码_8421BCD码转换为十进制
  8. 阿里云ECS服务器部署HADOOP集群(三):ZooKeeper 完全分布式集群搭建
  9. 数据科学入门与实战:玩转pandas之三
  10. ASP.NET MVC 4 (二)控制器
  11. Linux文件系统格式EXT3,EXT4和XFS的区别
  12. 华为鸿蒙状态栏,华为手机状态栏图标都代表什么
  13. macOS更新系统到12.6后git无法使用
  14. nmap 安装和使用
  15. 3.7 广域网(ppp协议、HDLC协议)
  16. css超级无敌不会,一大堆疑问大全
  17. feign.codec.DecodeException异常解决方案
  18. 【欧姆龙控制器NX1系列调研】
  19. 远程终端服务器连接(mstsc)步骤
  20. 参加面试除了带简历外还要带哪些去面试

热门文章

  1. 常用 Git 命令使用教程
  2. 视频教程-从零开始学BGP--【适用于思科CCNA、CCNP入门】-路由协议
  3. mysql 备份 第三方工具_目前主流的数据库备份第三方工具都有哪些比较好用
  4. 直播源码网站,点击分享按钮,分享到各个渠道功能的实现
  5. 仿大众点评——秒杀系统部分02
  6. 理解ODBC:DSN、ODBC管理器、驱动程序
  7. debug tools
  8. [转]商业模式新生代
  9. 使用Python分析移动语音账单
  10. yapi与rap2比较