ORACLE函数介绍第五篇 分析函数简述

原创 2007年09月19日 17:46:00
 

注:N表示数字型,C表示字符型,D表示日期型,[]表示内中参数可被忽略,fmt表示格式。

  分析函数计算基于group by的列,分组查询出的行被称为"比照(window)",在根据over()执行过程中,针对每一行都会重新定义比照。比照为"当前行(current row)"确定执行计算的行的范围。这点一定要理解清楚。它是分析函数生成数据的原理。如果此处模糊,那么你在应用分析函数时恐就不会那么得心应手了。

  分析函数与前面章节中讲到的聚合函数非常相似,不同于聚合函数的地方在于它们每个分组序列均返回多行。在本节示例中会同时应用两种函数做对比,以更好体现二者的差异。通过本章节练习相信大家就会注意到,部分聚合函数和分析函数是同一个命令,事实确实如此。如果从语法格式上区分的话,没加over()的即是聚合函数,加了over()即是分析函数:)

  有一点需要注意哟,除了order by子句的运算外,分析函数在SQL语句中将会最后执行。因此,分析函数只能应用于select的列或order by子句中(记住喽,千万别扔到什么where、group by、having之类的地方了)。也正因此,同名的函数在做为聚合函数和分析函数时得出的结果可能不相同,就是因为此处运算逻辑不同造成的。

  同时,部分分析函数在选择列时支持distinct,如果你指定了该参数,则over条件中就只能指定partition子句,而不能再指定order by 子句了。

  分析函数的语法结构比较复杂,但多数函数都具有相同的语法结构,所以先在之前进行统一介绍,后续单个函数介绍时就不过多说明函数语法结构了。

  基本上所有的分析函数均是这种格式:

  函数名称 ([参数]) OVER (analytic_clause)

analytic_clause包含:[partition 子句][ order 子句 [window子句]]

Partition 子句:Partition by exp1[ ,exp2]...

Partition没啥说的,功能强大参数少,主要用于分组,可以理解成select中的group by。不过它跟select语句后跟的group by 子句并不冲突。

Order子句:Order by exp1[asc|desc] [ ,exp2 [asc|desc]]... [nulls first|last]。部分函数支持window子句。

Order by的参数基本与select中的order by相同。大家按那个理解就是了。Nulls first|last是用来限定nulls在分组序列中的所在位置的,我们知道oracle中对于null的定义是未知,所以默认ordery的时候nulls总会被排在最前面。如果想控制值为null的列的话呢,nulls first|last参数就能派上用场了。

Window子句:En,贴个图吧

 

   看起来复杂其实简单,而且应用的机率相当的低,不详细介绍了。

 

mybatis----简单介绍和使用

进公司后,公司用的Mysql数据库,持久层用的就是Mybatis,开始感觉没有接触过,应该挺难,可是现在看来全是自己吓自己,下面让我来简单介绍一下: MyBatis是一个基于java的持久层框架  ...
  • u013045959
  • u013045959
  • 2016年09月16日 14:11
  • 1365

Oracle所有分析函数

Oracle分析函数   Oracle分析函数——函数列表   SUM        :该函数计算组中表达式的累积和 MIN        :在一个组中的数据窗口中查找表达式的最小值 MA...
  • fujiakai
  • fujiakai
  • 2016年04月05日 17:20
  • 12232

Oracle的LAG和LEAD分析函数

Oracle的LAG和LEAD分析函数 Lag函数可以在一次查询中取出当前行的同一字段的前面第N行的数据。 Lead函数可以在一次查询中取出当前行的同一字段的后面第N行的值。 这...
  • haiross
  • haiross
  • 2015年02月11日 15:26
  • 5694

oracle分析函数

  • 2010年03月25日 10:45
  • 516KB
  • 下载

ORACLE分析函数详解

  • 2007年11月28日 10:17
  • 125KB
  • 下载

oracle10g分析函數

  • 2012年02月29日 16:59
  • 831KB
  • 下载

Oracle分析函数

  • 2011年09月06日 14:13
  • 148KB
  • 下载

ORACLE分析函数

  • 2013年03月16日 14:40
  • 955KB
  • 下载

ORACLE常用分析函数说明

  • 2014年09月19日 10:02
  • 352KB
  • 下载

oracle分析函数

  • 2011年11月14日 15:54
  • 1.26MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ORACLE函数介绍第五篇 分析函数简述
举报原因:
原因补充:

(最多只允许输入30个字)