Oracle 分析函数(11G)语法详解(转)

一、Oracle分析函数简介


1、分析函数,最早是从ORACLE8.1.6开始出现的,它的设计目的是为了解决诸如“累计计算”,“找出分组内百分比”,“前-N条查询”,“移动平均数计算”"等问题。其实大部分的问题都可以用PL/SQL解决,但是它的性能并不能达到你所期望的效果。分析函数是SQL言语的一种扩充,它并不是仅仅试代码变得更简单而已,它的速度比纯粹的SQL或者PL/SQL更快。现在这些扩展已经被纳入了美国国家标准化组织SQL委员会的SQL规范说明书中。

2、在日常的生产环境中,我们接触得比较多的是OLTP系统(即OnlineTransaction Process),这些系统的特点是具备实时要求,或者至少说对响应的时间多长有一定的要求;其次这些系统的业务逻辑一般比较复杂,可能需要经过多次的运算。比如我们经常接触到的电子商城。

在这些系统之外,还有一种称之为OLAP的系统(即Online Aanalyse Process),这些系统一般用于系统决策使用。通常和数据仓库、数据分析、数据挖掘等概念联系在一起。这些系统的特点是数据量大,对实时响应的要求不高或者根本不关注这方面的要求,以查询、统计操作为主。
Oracle分析函数,主要用于OLAP的系统中

二、Oracle分析函数原理

1、分析函数通过将行分组后,再计算这些分组的值。它们与聚集函数不同之处在于能够对每一个分组返回多行值。分析函数根据analytic claues(分析子句)将行分组,一个分组称为:一个窗口(可通过Windowsing Clause子句进行控制),并通过分析语句定义,对于每一行都对应有一个在行上滑动的窗口。该窗口确定当前行的计算范围。窗口大小可以用多个物理行(例如:rowid实际编号)进行度量,也可以使用逻辑区间进行度量,比如时间。

2、分析函数是查询中除需要在最终处理的order by 子句之外最后执行的操作。所有连接、WHERE、GROUP BY、HAVING子句都是分析函数处理之前完成的。因此,分析函数只出现在SELECT LIST或ORDER BY(按…排序)语句中,而不能出现在where或having子句中

3、分析函数通常用于计算:数据累积值、数据移动值、数据中间值,和输出集合报表。


三、Oracle分析函数的语法


Analytic-Function(<Argument>,<Argument>

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值