oracle分析函数浅析

原创 2004年08月27日 01:19:00

DENSE_RANK(),RANK()区别
说明:DENSE_RANK(),RANK()是oracle自带的分析函数,经常被用于在分组后的组内对某一字段的建立序列的方法,它们的区别在于相同字段值的处理不同

范例:

select deptno,cname,sal,
 dense_rank()
  over (partition by deptno
   order by sal desc) dr,
 rank()
  over (partition by deptno
   order by sal desc) r
 from emp
 order by deptno,sal desc
/

结果:

    DEPTNO ENAME             SAL         DR          R
---------- ---------- ---------- ---------- ----------
        10 KING             5000          1          1
        10 CLARK            2450          2          2
        10 MILLER           1300          3          3
        20 SCOTT            3000          1          1
        20 FORD             3000          1          1
        20 JONES            2975          2          3
        20 ADAMS            1100          3          4
        30 BLAKE            2850          1          1
        30 TURNER           1500          2          2
        30 WARD             1250          3          3
        30 MARTIN           1250          3          3
        30 JAMES             950          4          5
        30 ALLEN             600          5          6


分析函数中WINDOWS子句

RANGE
分析的字段必须是日期或数字型,根据当前分析行值进行比较、运算
ROWS
字段可以是任意类型,是行的物理数

WINDOWS子句中的sepcific 字句

UNBOUNDED PRECEDING
排序后从当前分区的第一行开始,结束与正在处理的当前行
CURRENT ROW
从当前行开始(并结束)
NUMERIC EXPRESSION PRECEDING
排序后从当前行之前的数字表达式开始
NUMERIC EXPRESSION FOLLOWING
排序后从当前行直到当前行之后的数字表达式结束
BETWEEN NUMERIC EXPRESSION1 AND NUMERIC EXPRESSION2 FOLLOWING
在以当前行为基准,两个数字的范围内

Oracle 分析函数

-- Start 说起 Oracle 分析函数,可以用很好很强大来形容。这项功能特别适用于各种统计查询,这些查询用通常的SQL很难实现,或者根本就无发实现。首先,我们从一个简单的例子开始,来一步一步揭...
  • shangboerds
  • shangboerds
  • 2014年12月19日 21:33
  • 3229

Oracle所有分析函数

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

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

一、Oracle分析函数简介 1、分析函数,最早是从ORACLE8.1.6开始出现的,它的设计目的是为了解决诸如“累计计算”,“找出分组内百分比”,“前-N条查询”,“移动平均数计算”"...
  • yuanqingyu0123
  • yuanqingyu0123
  • 2013年04月12日 17:39
  • 5968

oracle 分析函数

oracle 分析函数 目录(?)[+]   Oracle开发专题之:分析函数(OVER) 1 Oracle开发专题之:分析函数2(Rank,Dense_rank,...
  • haiross
  • haiross
  • 2015年02月13日 09:56
  • 1395

Oracle 分析函数与聚合函数(重点理解)

一、Oracle分析函数的语法与作用:   rank ( )             over ( [query_partition_clause]order_by_clause ) dense_r...
  • myflysun
  • myflysun
  • 2017年04月22日 21:14
  • 629

Oracle 11g学习笔记--分析函数

数据库中有很多内置的分析函数,能够执行复杂的计算。
  • E_xiake
  • E_xiake
  • 2016年10月16日 15:57
  • 1364

oracle分析函数技术详解(配上开窗函数over())

一、Oracle分析函数入门 分析函数是什么? 分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个...
  • haiross
  • haiross
  • 2013年11月11日 11:36
  • 32345

Oracle-分析函数之排序值rank()和dense_rank()

概述Oracle常见函数大全Oracle-分析函数之连续求和sum(…) over(…)Oracle-分析函数之排序值rank()和dense_rank()Oracle-分析函数之排序后顺序号row_...
  • yangshangwei
  • yangshangwei
  • 2016年11月04日 20:16
  • 5395

Oracle之分析函数、开窗函数

一、rank() over(partition by 字段1 order by 字段2) 从最经典的一个例子来说: 这是原始表结构: 现在需要增加一列,用来统计每天不同城市的完成率排名。 这意...
  • WalkToProgram
  • WalkToProgram
  • 2015年09月28日 11:08
  • 1008

oracle分析函数:一、窗口子句的使用

/************************ *标题:分析函数analytic functions *时间:2016-07-07 *作者:clark ******************...
  • u011538954
  • u011538954
  • 2016年07月07日 16:25
  • 949
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle分析函数浅析
举报原因:
原因补充:

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