`
yanxia611
  • 浏览: 41566 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

使用LAG和LEAD函数统计

SQL 
阅读更多
使用LAG和LEAD函数统计
Lag和Lead函数可以在一次查询中取出同一字段的前N行的数据和后N行的值。这种操作可以使用对相同表的表连接来实现,不过使用LAG和LEAD有更高的效率。以下是LAG和LEAD的例子:

SQL> select  year,region,profit ,lag (profit,1) over  (order by year)



  2       as last_year_exp from test;



YEAR REGION      PROFIT LAST_YEAR_EXP

---- ------- ---------- -------------

2003 West            88

2003 West            88            88

2003 Central        101            88

2003 Central        100           101

2003 East           102           100

2004 West            77           102

2004 East           103            77

2004 West            89           103



SQL> select  year,region,profit ,lead (profit,1) over  (order by year)



  2       as next_year_exp from test;



YEAR REGION      PROFIT NEXT_YEAR_EXP

---- ------- ---------- -------------

2003 West            88            88

2003 West            88           101

2003 Central        101           100

2003 Central        100           102

2003 East           102            77

2004 West            77           103

2004 East           103            89

2004 West            89

Lag函数为Lag(exp,N,defval),defval是当该函数无值可用的情况下返回的值。Lead函数的用法类似。

Lead和Lag函数也可以使用分组,以下是使用region分组的例子:

SQL> select  year,region,profit ,

  2  lag (profit,1,0) over  (PARTITION BY region order by year)



  3       as last_year_exp from test;



YEAR REGION      PROFIT LAST_YEAR_EXP

---- ------- ---------- -------------

2003 Central        101             0

2003 Central        100           101

2003 East           102             0

2004 East           103           102

2003 West            88             0

2003 West            88            88

2004 West            77            88

2004 West            89            77
分享到:
评论

相关推荐

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

    Oracle中的LAG和LEAD函数是窗口函数(Window Function)的一部分,它们主要用于在数据集的行之间进行向前或向后的查找,以获取当前行之外的数据。这两个函数在数据分析、报表生成和业务智能应用中非常常见,特别是在...

    深入浅出Oracle分析函数

    分析函数主要分为几大类:等级函数(Ranking Functions)、窗口函数(Windowing Functions)、报表函数(Reporting Functions)以及LAG和LEAD函数。 #### 二、等级函数(Ranking Functions) 等级函数主要包括`...

    oracle函数介绍(6) 著名函数之分析函数.doc

    LEAD函数与LAG相反,它返回当前行之后n行的列值。 以上这些分析函数极大地增强了Oracle SQL的功能,允许用户在单个查询中处理复杂的分析任务,无需多次查询或临时表。通过巧妙地组合这些函数,我们可以实现诸如...

    oracle分析函数

    ### Oracle分析函数详解 ...通过合理运用等级、开窗、报表以及LAG和LEAD函数,可以实现数据的深度分析,满足各类OLAP系统的需求。理解和掌握这些函数,对于提升数据处理能力和优化查询性能具有重要意义。

    Oracle 分析函数的使用.doc

    总之,Oracle的分析函数为复杂数据分析提供了强大而灵活的手段,使我们能够以简洁的SQL语句完成复杂的统计计算,极大地提升了数据处理的效率和便捷性。掌握并熟练运用这些函数,对于任何Oracle数据库管理员或开发...

    Mysql函数手册.rar_MySQL函数手册_VZI_mysql 函数手册

    手册还可能包含关于聚合函数(如GROUP BY和HAVING语句)、窗口函数(如LEAD()和LAG())以及各种其他高级用法的详细信息,帮助用户在实际操作中更好地处理数据。 此外,VZI版的MySQL函数手册可能会有额外的注解、...

    Oracle分析函数.pdf

    4. LAG, LEAD函数:允许在结果集中向前或向后检索数据值,常用于在没有自连接的情况下进行行间的数据比较。 5. 方差和标准差函数:如`VAR_POP()`, `VAR_SAMP()`, `STDEV_POP()`,它们用于计算未排序分区的统计值。 ...

    Oracle开发的over函数

    - **LAG、LEAD函数**:这类函数允许在结果集中向前或向后检索值,避免数据的自连接。 - **VAR_POP、VAR_SAMP、STDEV_POPE及线性的衰减函数**:计算任何未排序分区的统计值。 3. **PARTITION子句** 分区子句用于...

    hive窗口函数.docx

    3. 其他类:lag()、lead()、ntile() 等 窗口函数应用场景 窗口函数常用于解决以下问题: * 数据排名和排序 * 数据聚合和统计 * 数据窗口计算和分析 * 数据关联和join 窗口函数实践练习 以下是 28 道 Hive 窗口...

    oracle 110个常用函数.zip

    7. 分组和窗口函数:GROUP BY用于分组数据,RANK(), DENSE_RANK(), ROW_NUMBER()用于排序和排名,LEAD()和LAG()获取相邻行的值。 8. 模式匹配函数:LIKE和INSTR()用于在WHERE子句中进行模式匹配。 9. 随机函数:...

    oracle分析函数的使用说明

    分析函数通常与OVER()子句一起使用,这个子句定义了函数如何“观察”数据,可以指定排序、分区和行范围。 1. RANK(), DENSE_RANK(), ROW_NUMBER():这三个函数用于为每一行分配一个唯一的排名。RANK()在遇到相同值...

    oracle函数分类.rar

    **分析函数**如`RANK`、`DENSE_RANK`、`ROW_NUMBER`和`LAG`、`LEAD`等,提供了一种窗口函数的功能。它们可以在结果集的每一行上执行计算,而不仅仅是在分组级别上。例如,`RANK`可以为每行分配一个唯一的排名,`LAG`...

    hive 函数大全

    5. **窗口函数**:ROW_NUMBER, RANK, DENSE_RANK, LAG, LEAD等,用于处理有序数据的滑动窗口操作。 6. **连接函数**:JOIN操作允许将多个表的数据结合在一起。 7. **子查询和关联子查询**:用于更复杂的查询结构。 8...

    oracle函数大全中文api文档

    ROW_NUMBER,RANK,DENSE_RANK提供窗口排序,LEAD和LAG获取当前行的前一行或后一行数据,FIRST_VALUE和LAST_VALUE获取窗口内的第一个或最后一个值。 这个中文API文档将详细介绍这些函数的语法、参数、返回值以及...

    报表函数使用例程.rar

    7. **窗口函数**:像LEAD, LAG, RANK, ROW_NUMBER等,可以在数据集的行之间进行计算,提供类似移动平均或累计总和的效果。 8. **自定义函数**:高级用户可能需要创建自己的函数来满足特定需求,这可能涉及到编程...

    Sybase参考手册-函数

    这份手册详细阐述了在Sybase数据库环境中如何使用和理解各种函数,对于数据库管理员和开发人员来说,是必不可少的学习和工作工具。 手册内容可能涵盖以下几个方面: 1. **数值函数**:包括数学运算函数,如加减...

    oracle常用函数chm版

    6. **分析函数**:分析函数在处理大量数据时非常有用,如`RANK`、`DENSE_RANK`和`ROW_NUMBER`用于生成行序号,`LEAD`和`LAG`可以访问当前行的前一行或后一行数据,`FIRST_VALUE`和`LAST_VALUE`则用于获取分组内第一...

    ORACLE函数大全

    `RANK`、`DENSE_RANK`和`ROW_NUMBER`用于为数据行分配顺序编号,`LEAD`和`LAG`获取当前行或前/后一行的值,`SUM`和`AVG`的分析形式可以对分组数据进行累积计算。这些函数在窗口查询和数据透视中非常有用。 最后,...

    hive高级分析函数与优化.rar_hive_hive 函数优化_hive 分析 大数据_hive高级优化_oldwlc

    高级分析函数如统计学习函数(如KMEANS、NAIVE_BAYES等)和时间序列分析函数(如LAG、LEAD跨越时间窗口的计算)则能进行更复杂的分析任务。 2. **Hive函数优化**: 函数优化主要涉及函数重写、谓词下推和计算下推...

Global site tag (gtag.js) - Google Analytics