oracle分析函数使用的总结.pdf

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle 分析函数使用总结 1. 使用评级函数 评级函数(ranking function )用于计算等级、百分点、n 分片等等,下面是几个常用到的评级函数 RANK ():返回数据项在分组中的排名。特点:在排名相等的情况下会在名次中留下空位 DENSE_RANK():与 RANK 不同的是它在排名相等的情况下不会在名次中留下空位 CUME_DIST() :返回特定值相对于一组值的位置:他是“cumulative distribution ”(累积分布) 的简写 PERCENT_RANK() :返回某个值相对于一组值的百分比排名 NTILE():返回 n 分片后的值,比如三分片、四分片等等 ROW_NUMBER():为每一条分组纪录返回一个数字 下面我们分别举例来说明这些函数的使用 1)RANK ()与DENSE-RANK () 首先显示下我们的源表数据的结构及部分数据 SQL desc all_sales; 名称 是否为空? 类型 YEAR NOT NULL NUMBER(38) MONTH NOT NULL NUMBER(38) PRD_TYPE_ID NOT NULL NUMBER(38) EMP_ID NOT NULL NUMBER(38) AMOUNT NUMBER(8,2) SQL select * from all_sales where rownum11; YEAR MONTH PRD_TYPE_ID EMP_ID AMOUNT 2003 1 1 21 10034.84 2003 2 1 21 15144.65 2003 3 1 21 20137.83 2003 4 1 21 25057.45 2003 5 1 21 17214.56 2003 6 1 21 15564.64 2003 7 1 21 12654.84 2003 8 1 21 17434.82 2003 9 1 21 19854.57 2003 10 1 21 21754.19 已选择 10 行。 好接下来我们将举例来说明上述函数的使用:首先是 RANK ()与DENSE-RANK ()的使用 SQL select 2 prd_type_id,sum(amount), 3 RANK() OVER (ORDER BY SUM(amount) DESC) AS rank, 4 DENSE_RANK() OVER (ORDER BY SUM(amount) DESC) AS dense_rank 5 from all_sales 6 where year=2003 7 group by prd_type_id 8 order by rank; PRD_TYPE_ID SUM(AMOUNT) RANK DENSE_RANK 5

文档评论(0)

158****6415 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档