LAG 访问结果集中当前行之前的行 LAG (value_expr [,offset] [,default])OVER ( [ partition_by_clause ] order_by_clause )
LEAD 访问结果集中当前后之后的行 lead(value_expr [,offset][,default]) over([partition_by_clause] order by Order_by_clause)
参数值说明:
value_expr 值表达式,通常是字段,也可是是表达式。value_expr本身不支持分析函数,也就是lead不支持多层调用。
offset 偏移量,如果offset是正数表示顺序下的第几个,如果是负数就是反顺序的第几个。 如果不提供这个参数,就是默认1.
default 默认值,如果没有找到offset所指定的值,就返回default值。如果没有设置,且找不到,那么就返回Null
下面是个简单的例子:
SQL> select deptno,
2 sal,
3 ename,
4 lead(ename, 1, 'lead_ename') over(partition by deptno order by sal) lead_ename,
5 lag(ename, 1, 'lag_ename') over(partition by deptno order by sal) lag_ename
6 from emp;
    DEPTNO        SAL ENAME      LEAD_ENAME LAG_ENAME
---------- ---------- ---------- ---------- ----------
10 1300 MILLER CLARK lag_ename
10 2450 CLARK KING MILLER
10 5000 KING lead_ename CLARK
20 800 SMITH JONES lag_ename
20 2975 JONES FORD SMITH
20 3000 FORD lead_ename JONES
30 950 JAMES WARD lag_ename
30 1250 WARD MARTIN JAMES
30 1250 MARTIN TURNER WARD
30 1500 TURNER ALLEN MARTIN
30 1600 ALLEN BLAKE TURNER
30 2850 BLAKE lead_ename ALLEN 已选择12行。
上面例子说明:lead和lag按deptno分组,并在每个分组里按sal列排序。
lead(ename, 1, 'lead_ename'),表示取当前行下一个ename值,如果找不到就用'lead_ename'字符串替代;
lag(ename,1,'lag_ename'),表示取当前行前一个ename值,如果找不到就用'lag_ename'字符串取代。

Oracle分析函数之LEAD和LAG的更多相关文章

  1. [转]SQL Server 2012 的 T-SQL 新功能 – 新的数据分析函数(LEAD、LAG)

    当您需要在 SQL Server 中利用 T-SQL 比较结果集的每一列跟前一列或后一列的差异时,在过去可能需要利用 CURSOR 搭配临时表变量,或是透过递归 CTE 来达到这个效果,如今 SQL ...

  2. SQL SERVER LEAD和LAG使用

    示例:获取在48小时之内重复的记录 SELECT * FROM ( SELECT b.* , LAG(b.OperatorTime, , b.OperatorTime) OVER ( PARTITIO ...

  3. Hive 分析函数lead、lag实例应用

    Hive的分析函数又叫窗口函数,在oracle中就有这样的分析函数,主要用来做数据统计分析的. Lag和Lead分析函数可以在同一次查询中取出同一字段的前N行的数据(Lag)和后N行的数据(Lead) ...

  4. [转]oracle 分析函数over

      oracle 分析函数over 分析函数(OVER) 目录: =============================================== 1.Oracle分析函数简介 2. O ...

  5. oracle 分析函数

    认识分析函数 分析函数是什么? 分析函数是oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计值. 分析函数 ...

  6. [置顶] ORACLE分析函数(1)

    分析函数式ORACLE提供的用来进行数据统计的强有力工具,与我们常用的聚合函数具有一些相似性,但又完全不同.聚合函数,首先会将数据进行分组,然后对每一组数据进行运算,如求和sum,求平均AVG等,对于 ...

  7. 常用Oracle分析函数详解 [http://www.cnblogs.com/benio/archive/2011/06/01/2066106.html]

      学习步骤:1. 拥有Oracle EBS demo 环境 或者 PROD 环境2. copy以下代码进 PL/SQL3. 配合解释分析结果4. 如果网页有点乱请复制到TXT中查看 /*假设一个经理 ...

  8. oracle分析函数技术详解(配上开窗函数over())

    一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...

  9. Oracle分析函数——函数列表

    --------------聚合函数 SUM :该函数计算组中表达式的累积和 MIN :在一个组中的数据窗口中查找表达式的最小值 MAX :在一个组中的数据窗口中查找表达式的最大值 AVG :用于计算 ...

随机推荐

  1. CentOS下yum安装mysql,jdk以及tomcat

    首先说明,服务器是阿里云的,centos6.3_64位安全加固版.首先需要登陆进来,使用的是putty,因为最初的时候,Xshell登陆会被拒绝. 0. 创建个人文件夹 # 使用 yum 安装tomc ...

  2. java RSA加密解密--转载

    原文地址:http://www.blogjava.net/icewee/archive/2012/05/19/378570.html 该工具类中用到了BASE64,需要借助第三方类库:javabase ...

  3. Objective-C Runtime之着魔的UIAlertView

    前言: 上篇文章写的是Runtime的一个入门教程,刚哥问我那个Associated Objects加回调是啥时候用,那我就来告诉你啦!我们在使用UIAlertView的时候用的多. 传统的UIAle ...

  4. MySQL(18):Select- subquery子查询

    1. Select- subquery子查询 子查询:是将一条查询语句嵌套在另一条查询语句之中. 2. 案例 需求:查询获得代课天数最多的那个老师的信息. 思路:先获得最多的代课天数是多少天,然后再判 ...

  5. MSP430电平转换

    说道到这个电平转换,写程序的时候居然还要示波器来观察现象,表示我们交的是211的学费,上的却不是211大学,创新实验室的仪器设备真的是少的可怜啊,我级不吐槽了说说这个电平转换的一些知识还有看法吧.. ...

  6. 用js对象创建链表

    //以下是一个链表类 function LinkedList(){ //Node表示要加入列表的项 var Node=function(element){ this.element=element; ...

  7. 转载---SQL Server XML基础学习之<7>--XML modify() 方法对 XML 数据中插入、更新或删除

    /*------------------------------------------------------------------------------+ #| = : = : = : = : ...

  8. SQLSERVER 数据库性能的基本

    很久没有写文章了,在系统正式上线之前,DBA一般都要测试一下服务器的性能 比如你有很多的服务器,有些做web服务器,有些做缓存服务器,有些做文件服务器,有些做数据库服务器 做数据库服务器的那台服务器性 ...

  9. ASP.NET MVC模型绑定的6个建议(转载)

    ASP.NET MVC模型绑定的6个建议 发表于2011-08-03 10:25| 来源博客园| 31 条评论| 作者冠军 validationasp.netmvc.netasp 摘要:ASP.NET ...

  10. c++Builder 下的文件及目录操作

    转自 http://blog.csdn.net/ktcserver/article/details/936329 一.判断目录是否存在:           C++   Builder中提供了检查文件 ...