`
hypgr
  • 浏览: 276943 次
社区版块
存档分类
最新评论

oracle lead 使用实践

阅读更多

oracle 统计分析函数 lead

     语法结构:

     lead(value_expr [,offset][,default]) over([query_partition_clause] order by Order_by_clause)

     参数说明:

     value_expr 值表达式,通常是字段,也可是是表达式。value_expr本身不支持分析函数,也就是lead不支持多层调用。
     offset 偏移,应该是很熟悉的数学概念了,或者是相对偏移,表格来开当前行的第offset行,如果offset是整数就表示是顺序下的前第n行,如果是负数就是往后第n行。 如果不提供这个参数,就是默认为1.
      default 默认值,如果没有找到,应该返回什么值的意思,有点类似nvl(col,value)。如果没有设置,且找不到,那么就返回Null
      over  可以简单地翻译为在什么。。。的基础之上
      query_partition_clause  分区语句,对结果集合分区的语句,是可选的,如果没有就是所有的一个分区。
      Order_by_clause 排序语句 必须需要 ,形如order by xxx desc/asc

     解释示例:
     SQL> select * from test_value;
       
              MONS JJR               CJL       CJJE
        ---------- ---------- ---------- ----------
            200801 LZF               250       1999
            200802 LZF               200       2000
            200803 LZF               300       1000
            200804 LZF                23        189
            200805 LZF               356        456
            200806 LZF               100        200
            200807 LZF               600        700
            200808 LZF                23        123
            200809 LZF               400        500
       
        9 rows selected
       
        SQL>
        SQL> select rownum 序号,Mons,cjl cjl_01,
          2  lead(cjl,1) over (order by mons desc) cjl_02,
          3  lead(cjl,2) over (order by mons desc) cjl_03,
          4  lead(cjl,3) over (order by mons desc) cjl_04,
          5  lead(cjl,4) over (order by mons desc) cjl_05,
          6  lead(cjl,5) over (order by mons desc) cjl_06,
          7  lead(cjl,6) over (order by mons desc) cjl_07,
          8  lead(cjl,7) over (order by mons desc) cjl_08,
          9  lead(cjl,8) over (order by mons desc) cjl_09
         10   from test_value

              序号       MONS     CJL_01     CJL_02     CJL_03     CJL_04     CJL_05     CJL_06     CJL_07     CJL_08     CJL_09
        ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
                 9     200809        400         23        600        100        356         23        300        200        250
                 8     200808         23        600        100        356         23        300        200        250
                 7     200807        600        100        356         23        300        200        250           
                 6     200806        100        356         23        300        200        250                      
                 5     200805        356         23        300        200        250                                 
                 4     200804         23        300        200        250                                            
                 3     200803        300        200        250                                                       
                 2     200802        200        250                                                                  
                 1     200801        250                  

  实践使用示例:         

   select id,lead(id,1)over(partition by  call_req_id order by call_req_id ,id),type,analyst,time_stamp from act_log order by call_req_id ,id

分享到:
评论
3 楼 saboo 2011-08-31  
当然有用,可以查询,下一条数据。

select * from HST_SMMS_PA_INFO
where PA_NO=(
      select c.n from (select PA_NO,lead(PA_NO,1,0)  over (order by PA_NO) as n from HST_SMMS_PA_INFO) c
      where c.PA_NO='ZPA00004')
2 楼 hypgr 2009-10-26  
liushilang 写道
不知道这个函数有什么实际作用

分析函数,当然在分析的时候用啊,他能解决一些复杂查询的问题。
1 楼 liushilang 2009-10-26  
不知道这个函数有什么实际作用

相关推荐

    Oracle Press - Oracle Database 11g SQL

    8. **窗口函数**:探讨ROW_NUMBER、RANK、DENSE_RANK、LEAD、LAG等窗口函数的使用,用于行级排序和计算。 9. **游标**:解释游标的概念,如何声明、打开、读取和关闭游标,以及在PL/SQL中使用游标。 10. **高级SQL...

    《oracle 教程》熟练使用主流数据库orcale

    更进一步,Oracle还提供了自定义函数、聚合函数和窗口函数,如LEAD和LAG,以满足复杂的数据处理需求。 其次,锁和表分区是优化数据库性能的重要手段。锁机制在Oracle中用于控制并发访问,确保数据的一致性和完整性...

    从实践中学习oracle sql

    这篇文档“从实践中学习Oracle SQL”旨在通过实例教学,帮助初学者更好地掌握这一技能。Oracle SQL的实践性很强,只有通过实际操作,才能真正理解和运用各种查询、更新和管理数据的方法。 首先,Oracle SQL基础包括...

    oracle查询相邻上下行值

    自连接方式适用于任何版本的Oracle数据库,而使用`LAG()`和`LEAD()`函数则更加简洁高效,但需要Oracle 11g及以上版本的支持。具体选择哪种方式取决于实际业务场景的需求以及所使用的Oracle版本。在实践中,建议优先...

    Oracle&SQL手册

    Oracle 和 SQL 手册是数据库管理和开发...Oracle 和 SQL 手册通常会包含这些主题的详细解释、示例和最佳实践,帮助用户深入理解和应用这些概念。无论是数据库管理员还是开发人员,熟悉并掌握这些知识点都是至关重要的。

    Oracle分析函数实践 - blog.docx

    - `LAG()`, `LEAD() OVER`: 在结果集中向前或向后检索值,常用于比较相邻行的数据。 - `RANK() OVER`: 为每个分组中的行分配一个唯一的排名,排名相等时会有空位。 - `DENSE_RANK() OVER`: 类似于`RANK()`, 但排名...

    oraclesql 学习资料

    ### Oracle SQL 学习资料详解 #### 一、Oracle SQL 概述 Oracle SQL 是 Oracle 数据库的标准查询语言,用于管理、检索和处理 Oracle 数据库中的数据。...通过实践上述示例和技巧,您可以更好地理解和应用 Oracle SQL。

    oracle培训笔记2

    Oracle数据库是全球最广泛使用的商业关系型数据库管理系统之一,它提供了强大的数据管理能力和高可用性。在"Oracle培训笔记2"中...不断学习和实践是提升Oracle技能的关键,这将有助于在实际工作中解决各种数据库问题。

    Oracle数据库速查知识文档,oracle使用手册

    Oracle的高级查询涉及到联接(JOIN)、子查询、集合操作(UNION、INTERSECT、EXCEPT)以及窗口函数(如`RANK`、`ROW_NUMBER`、`LEAD`、`LAG`)。这些技术允许对大数据集进行复杂分析,提取有价值的信息。 PL/SQL...

    oracle错误好帮助文档和oracle函数大全

    Oracle数据库是全球广泛使用的...在实践中,结合实际案例学习和使用这些工具,将有助于深化对Oracle数据库的理解,提高解决问题的能力。无论是数据库管理员还是开发人员,都应该将它们视为工作中不可或缺的参考资料。

    Oracle数据库学习 06Days

    Oracle数据库是全球最广泛使用的商业关系型数据库管理系统之一,它由甲骨文公司(Oracle Corporation)开发和维护。Oracle数据库以其高效、稳定和强大的功能在金融、电信、医疗等众多行业得到广泛应用。在这个...

    oracle行转列

    在IT领域,数据库管理和数据处理是至关重要的环节。Oracle数据库作为全球广泛使用的数据库管理系统之一,提供...通过深入学习和实践,数据库管理员和开发人员能够更高效地管理和操作Oracle数据库,满足复杂的业务需求。

    oracle基础知识回顾与练习.zip

    如PL/SQL(Oracle的存储过程语言)、游标、子查询、连接(JOIN)操作、分组(GROUP BY)和聚合函数(SUM,AVG,COUNT等)、窗口函数(ROW_NUMBER,RANK,LEAD,LAG等)以及索引的使用。 3. 数据库对象 在Oracle中...

    oracle企业级培训ppt

    还会讲解如何使用索引提升查询性能,以及分析函数(如LEAD、LAG、FIRST_VALUE、LAST_VALUE)的应用。 除了理论知识,这份培训资料还包含上机指导和实验习题,帮助学习者通过实践巩固所学内容。通过这些实验,可以...

    oracle sql 高级编程

    Oracle数据库是世界上最广泛使用的数据库系统之一,它提供了强大的功能和高效的性能,使得SQL在Oracle环境下的应用变得更为复杂和多样化。本节将详细探讨Oracle SQL的高级特性、优化技巧以及最佳实践。 一、子查询...

    oracle日积月累

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其在企业级数据存储和管理中扮演着重要角色。"Oracle日积月累"这个主题涵盖了在学习和...通过深入理解和实践,可以提升在Oracle数据库管理和开发方面的技能。

    Pro Oracle SQL Development

    4. **窗口函数**:Oracle SQL中的窗口函数(如RANK、ROW_NUMBER、LEAD、LAG等)为在一组相关行上执行计算提供了新方法,这对于排名、移动平均和趋势分析特别有用。 5. **索引和性能优化**:理解索引的工作原理和...

    oracle 查询部分ppt

    《玩转Oracle查询部分》这份PPT是针对Oracle数据库系统中的查询操作进行深入探讨的资料。...通过学习和实践这些内容,无论是数据库新手还是经验丰富的开发者,都能进一步提升自己在Oracle数据库领域的专业技能。

    ORACLE 教程.SQL学习

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统...总的来说,Oracle SQL的学习涵盖了大量的概念和技术,需要不断实践和深入研究才能精通。通过本教程,你将逐步掌握如何在Oracle数据库中高效地管理和操作数据。

Global site tag (gtag.js) - Google Analytics