- 浏览: 109144 次
- 性别:
- 来自: 昆明
文章分类
- 全部博客 (151)
- 120D02 (5)
- 直升机 (1)
- 我的技术资料收集 (82)
- 的技术资料收集 (4)
- .NET Solution (2)
- ASP.NET (1)
- Linq to sql (1)
- 数据库技术(MS SQL) (2)
- 架构/设计 (1)
- 敏捷/持续集成 (1)
- C#.NET开发 (1)
- Matlab开发 (1)
- WinForm开发 (1)
- 开源技术 (1)
- jQuery (1)
- 我的博文 (4)
- js (2)
- android (2)
- 9. 读书笔记 (1)
- CSS3 (1)
- HTML5 (1)
- JavaScript (5)
- 移动开发 (2)
- 编程心得 (1)
- Linux操作系统 (1)
- (BI)商业智能 (1)
- IOS (1)
- Windows Phone (2)
- C# API (1)
- JQuery系列 (1)
- TFS (1)
- C# (2)
- ExtJs (1)
- .NET (1)
- Nginx (1)
- WCF学习笔记 (1)
- Computer Graphic (1)
- IT产品 (1)
- 工具分享 (1)
- MySelf (1)
- C#专栏 (1)
- 管理 (1)
- 基于Oracle Logminer数据同步 (1)
- 日常 (1)
- 实用工具 (1)
- 网页设计 (1)
- avalon (1)
- flash (1)
- DDD (1)
- 01 技术Android (1)
- WCF (1)
- selenium (1)
最新评论
-
464410531:
三国杀。。。。。。。。。。。。。。。。。。。。。。。。。。。。 ...
实用的职场宝典:不提拔你,就因为你只想把工作做好
- 我坚信初学者更加明白初学者学习的困难在哪里。
- 我坚信最好的学习资料是自己亲手记录。
- 我坚信最好的学习方法是自己动手。
- 我坚信最好的检验方式就是能把自己所学到的东西转手教给别人。
-
-----作者: 高鹏
教为学:Oracle SQL学习之路(二):分析函数之相邻
前言
相邻是一种什么概念?
数据库里面的相邻又是一种什么概念?
相邻最典型的应用场景是什么?
同比和环比的概念大家清楚否。
同样先上例子:
结果如下:
DEPTNO
ENAME
LOWER_NAME
HIGER_NAME
10
CLARK
AAA
KING
10
KING
CLARK
MILLER
10
MILLER
KING
ZZZ
20
ADAMS
AAA
FORD
20
FORD
ADAMS
JONES
20
JONES
FORD
SCOTT
20
SCOTT
JONES
SMITH
20
SMITH
SCOTT
ZZZ
30
ALLEN
AAA
BLAKE
30
BLAKE
ALLEN
JAMES
30
JAMES
BLAKE
MARTIN
30
MARTIN
JAMES
TURNER
30
TURNER
MARTIN
WARD
30
WARD
TURNER
ZZZ
在这里有必要把执行计划贴出来:
- Execution Plan
- ----------------------------------------------------------
- Plan hash value: 3145491563
- ---------------------------------------------------------------------------
- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
- ---------------------------------------------------------------------------
- | 0 | SELECT STATEMENT | | 15 | 135 | 4 (25)| 00:00:01 |
- | 1 | WINDOW SORT | | 15 | 135 | 4 (25)| 00:00:01 |
- | 2 | TABLE ACCESS FULL| EMP | 15 | 135 | 3 (0)| 00:00:01 |
- ---------------------------------------------------------------------------
- Statistics
- ----------------------------------------------------------
- 1 recursive calls
- 0 db block gets
- 7 consistent gets
- 0 physical reads
- 0 redo size
- 981 bytes sent via SQL*Net to client
- 420 bytes received via SQL*Net from client
- 2 SQL*Net roundtrips to/from client
- 1 sorts (memory)
- 0 sorts (disk)
- 14 rows processed
我执行了两个相邻函数,可是执行计划和上一次一样。
Syntax
LAG函数:
LEAD函数:
同样,这两个函数的用法上是一致的,唯一不同的是结果。
用法详解
这两个函数都提供了在不使用自连接的情况下,访问表中多个行的路径。
再来一个例子:
结果如下(节选):
LAST_NAME
DEPARTMENT_ID
HIRE_DATE
SALARY
PREV_SAL
Whalen
10
2003-09-17
4400
0
Hartstein
20
2004-02-17
13000
0
Fay
20
2005-08-17
6000
13000
Raphaely
30
2002-12-07
11000
0
Khoo
30
2003-05-18
3100
11000
Tobias
30
2005-07-24
2800
3100
Baida
30
2005-12-24
2900
2800
Himuro
30
2006-11-15
2600
2900
Colmenares
30
2007-08-10
2500
2600
LAG/LEAD(v, n, dv)里的n表示位移,必须是0或正整数,dv是在没有取到对应值时的默认值。n默认是1,dv默认是null。
其中order by 是必须的paritition by是可选的。
当然,其实这后面都是可以接多列的。
执行计划之所以没有贴,是因为结果是一样的。
发表评论
-
Javascript:猜猜弹出的是啥?为啥? - 幸福框架
2013-06-28 13:33 432原帖地址:http://www.cnblogs.com/hap ... -
C#中WindowsForm常见控件的运用 -- - 李晓峰
2013-06-28 13:27 1747原帖地址:http://www.cnblogs.com/liy ... -
海量数据处理利器之Hash——在线邮件地址过滤 - MyDetail
2013-06-27 12:00 654原帖地址:http://www.cnblo ... -
ASP.NET MVC 4 for Visual Studio 2010 下载地址 - 张鸿伟
2013-06-27 11:48 754原帖地址:http://www.cnblogs.com/wei ... -
【ASP.NET Web API教程】6.2 ASP.NET Web API中的JSON和XML序列化 - r01cn
2013-06-26 11:00 919原帖地址:http://www.cnblogs.com/r01 ... -
[珠玑之椟]估算的应用与Little定律 - 五岳
2013-06-26 10:54 639原帖地址:http://www.cnblogs.com/wuy ... -
30行,金额转人民币大写的代码 - 史蒂芬.王
2013-06-26 10:42 1028原帖地址:http://www.cnblogs.com/ste ... -
从银行的钱荒看一个公司的团队建设 产品线过多最终导致最赚钱的项目面临破产 - James Li
2013-06-26 10:36 632原帖地址:http://www.cnblogs.com/Jam ... -
Windows 8 动手实验系列教程 实验6:设置和首选项 - zigzagPath
2013-06-25 13:39 535原帖地址:http://www.cnblogs.com/zig ... -
闲聊可穿戴设备 - shawn.xie
2013-06-25 13:33 616原帖地址:http://www.cnblo ... -
如何使用开源库,吐在VS2013发布之前,顺便介绍下VS2013的新特性"Bootstrap" - 量子计算机
2013-06-25 13:27 870原帖地址:http://www.cnblogs.com/DSh ... -
一步一步将自己的代码转换为观察者模式 - 文酱
2013-06-23 11:36 611原帖地址:http://www.cnblo ... -
iOS内存错误EXC_BAD_ACCESS的解决方法(message sent to deallocated instance) - VicStudio
2013-06-23 11:30 545原帖地址:http://www.cnblogs.com/vic ... -
记录asp.net在IE10下事件丢失排错经过 - Adming
2013-06-23 11:24 713原帖地址:http://www.cnblogs.com/wea ... -
记 FineUI 官方论坛所遭受的一次真实网络攻击!做一个像 ice 有道德的黑客! - 三生石上
2013-06-23 11:18 794原帖地址:http://www.cnblogs.com/san ... -
3、使用Oracle Logminer同步Demo
2013-06-19 10:33 571原帖地址:http://www.cnblogs.com/shi ... -
算法实践——数独的基本解法
2013-06-19 10:27 1452原帖地址:http://www.cnblogs.com/gre ... -
简单实现TCP下的大文件高效传输
2013-06-19 10:21 692原帖地址:http://www.cnblogs.com/sma ... -
avalon - 初步接触
2013-06-18 10:06 785原帖地址:http://www.cnblogs.com/aar ... -
Nginx学习笔记(一) Nginx架构
2013-06-18 09:59 529原帖地址:http://www.cnblogs.com/cod ...
相关推荐
Oracle分析函数是数据库管理系统Oracle中的一种高级SQL特性,它们在数据处理和分析中扮演着重要角色。分析函数允许用户在结果集的每一行上执行计算,不仅考虑当前行,还考虑了同一组内的其他行。这与传统的聚合函数...
分析函数作为Oracle数据库中一项高级功能,专为解决复杂报表统计需求设计,其核心优势在于能够对数据进行精细的分组处理后,计算基于这些分组的特定统计值。与传统的聚合函数不同,分析函数不仅能够实现分组统计,还...
### Oracle分析函数详解 #### 一、概述 Oracle分析函数是一种强大的工具,它允许用户对分组数据执行复杂的计算,并且能够返回多个结果行。这与传统的聚合函数(如`SUM`、`COUNT`等)形成鲜明对比,后者通常只针对...
### Oracle 查询相邻上下行值 #### 背景与需求 在处理时间序列数据或具有某种排序的数据时,经常需要查询某一行记录与其相邻行(前一行或后一行)的数据。这种需求在财务分析、时间序列分析等领域非常常见。例如,...
Oracle分析函数是数据库管理系统Oracle中的一种高级特性,自Oracle 8.1.6版本开始引入,主要用于处理复杂的聚合计算和数据分析任务。它们提供了一种更高效、更灵活的方式来执行诸如累计计算、分组内的百分比计算、前...
Oracle 分析函数是一种强大的SQL工具,它在Oracle数据库中用于处理复杂的分析操作,如累计计算、计算百分比、前N条记录查询以及移动平均数。分析函数是在Oracle 8.1.6版本引入的,目的是为了提高性能并解决无法通过...
Oracle分析函数是数据库查询中的一个强大工具,它们在处理数据集时提供了高级的聚合功能,可以对一组行进行计算,并返回单个值或一组值。分析函数与聚合函数(如SUM, AVG, COUNT等)类似,但有显著的区别:聚合函数...
通过学习和实践提供的SQL脚本,如“汇总报表开发过程学习研究.sql”和“分析sql.txt”,可以进一步加深对Oracle函数的理解和应用。 在日常工作中,可以结合各种工具,如SQL Developer、Toad等,来编写、测试和优化...
Oracle分析函数是数据库管理系统Oracle中的一个强大特性,自8.1.6版本开始引入,用于对数据集执行更复杂的聚合操作。与普通的聚合函数(如SUM、COUNT、AVG等)不同,分析函数允许在结果集中返回多行,而不是单行的汇...
### Oracle分析函数参考手册知识点详解 #### 一、Oracle分析函数概述 Oracle分析函数自8.1.6版本起引入,主要用于对数据进行更复杂的分析处理。与传统的聚合函数(如SUM, AVG等)不同,分析函数能够在分组的基础上...
SQL(Structured Query ...以上只是SQL学习笔记中的部分要点,实际应用中还需要结合具体数据库系统(如MySQL、Oracle、SQL Server等)的特点和最佳实践。通过持续学习和实践,才能真正精通SQL,成为数据管理的高手。
Oracle分析函数是数据库管理系统Oracle中的一种高级特性,用于对数据集进行分析操作,提供了一种高效、简洁的方式来处理复杂的数据分析任务。分析函数在Oracle 8i版本中首次引入,极大地简化了之前需要通过自连接、...
Oracle分析函数是数据库查询中非常强大的工具,它们用于处理复杂的报表和统计需求,特别是在在线分析处理(OLAP)环境中。分析函数与聚合函数的主要区别在于,聚合函数对每个组只返回一行结果,而分析函数则可以针对...
Oracle数据库系统是世界上最广泛使用的数据库管理系统之一,它包含了大量的内置函数,这些函数极大地增强了SQL查询的能力,提高了数据处理的效率。本篇文章将详细介绍Oracle数据库中的一些关键函数,并提供实际应用...
在SQL查询中,这通常通过JOIN操作或窗口函数实现,如示例中的LEFT JOIN,以获取相邻记录的数据。 2. **同比/环比**:同比是指当前数值与去年同期数值的比较,而环比则是与前一时期数值的比较。在SQL中,同比可通过...
Oracle 10g R2中的分析函数是数据库查询和数据处理的重要工具,它们允许用户在一组行上执行计算,而不仅仅是单行。...通过深入学习和实践,你将能够熟练地运用这些分析函数,优化你的SQL查询,从而提升整个系统的性能。
Oracle分析函数是数据库查询中的强大工具,它允许用户在数据集上执行复杂的分析操作,而不仅仅是简单的聚合。分析函数的特点在于它们能够对数据进行排序、筛选,并且可以在不同的分区、窗口和排序规则下运行,这使得...
3. **窗口函数**:Oracle 10g引入了窗口函数,如RANK()、ROW_NUMBER()、LEAD()和LAG(),这些函数在数据分析中非常有用,可以实现排序、计算排名、获取相邻行数据等功能。 4. **数据操作**:除了基本的INSERT、...
Oracle 从版本 8.1.6 开始引入了分析函数,极大地扩展了SQL查询的能力。 首先,让我们来看看一些常见的分析函数: 1. AVG:计算指定表达式在一组或数据窗口内的平均值。例如,`AVG(salary) OVER (PARTITION BY ...