oracle分析函数使用总结

oracle分析函数使用总结

ID:32324100

大小:94.00 KB

页数:13页

时间:2019-02-03

oracle分析函数使用总结_第1页
oracle分析函数使用总结_第2页
oracle分析函数使用总结_第3页
oracle分析函数使用总结_第4页
oracle分析函数使用总结_第5页
资源描述:

《oracle分析函数使用总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Oracle分析函数使用总结1.使用评级函数评级函数(rankingfunction)用于计算等级、百分点、n分片等等,下面是几个常用到的评级函数:RANK():返回数据项在分组中的排名。特点:在排名相等的情况下会在名次中留下空位DENSE_RANK():与RANK不同的是它在排名相等的情况下不会在名次中留下空位CUME_DIST():返回特定值相对于一组值的位置:他是“cumulativedistribution”(累积分布)的简写PERCENT_RANK():返回某个值相对于一组值的百分比排名NTILE():返回n分片后的值,比如三分片、四分片等等ROW_NUMBER():为

2、每一条分组纪录返回一个数字下面我们分别举例来说明这些函数的使用1)RANK()与DENSE-RANK()首先显示下我们的源表数据的结构及部分数据:SQL>descall_sales;名称是否为空?类型------------------------------------------------------------YEARNOTNULLNUMBER(38)MONTHNOTNULLNUMBER(38)PRD_TYPE_IDNOTNULLNUMBER(38)EMP_IDNOTNULLNUMBER(38)AMOUNTNUMBER(8,2)SQL>select*fromall_sal

3、eswhererownum<11;YEARMONTHPRD_TYPE_IDEMP_IDAMOUNT---------------------------------------------------2003112110034.842003212115144.652003312120137.832003412125057.452003512117214.562003612115564.642003712112654.842003812117434.822003912119854.5720031012121754.19已选择10行。好接下来我们将举例来说明上述函数的使用:首先是RA

4、NK()与DENSE-RANK()的使用:SQL>select2prd_type_id,sum(amount),3RANK()OVER(ORDERBYSUM(amount)DESC)ASrank,4DENSE_RANK()OVER(ORDERBYSUM(amount)DESC)ASdense_rank5fromall_sales6whereyear=20037groupbyprd_type_id8orderbyrank;PRD_TYPE_IDSUM(AMOUNT)RANKDENSE_RANK------------------------------------------511

5、1905081.84223478270.91334402751.16442186381.2255注意:这里PRD_TYPE_ID列为5的SUM(AMOUNT)的值为空,RANK()和DENSE-RANK在这一行的返回值为1。因为默认状态下RANK()和DENSE-RANK()在递减排序中将空值指定为最高排名1,而在递增排序中则把它指定为最低排名。这里还有一个问题就是我们的例子中没有SUM(AMOUNT)相等的值,如果有的话RANK与DENSE-RANK将表现出区别比如上面的例子如果PRD_TYPE_ID为4的SUM(AMOUNT)的值也为:478270.91的话,那么上面语句的输

6、出则为:PRD_TYPE_IDSUM(AMOUNT)RANKDENSE_RANK------------------------------------------5111905081.84223478270.91334478270.91332186381.2254此外这里还有两个参数来限制空值的排序即:NULLSFIRST和NULLSLAST我们还以上面的例子来看:SQL>select2prd_type_id,sum(amount),3RANK()OVER(ORDERBYSUM(amount)DESCNULLSLAST)ASrank,4DENSE_RANK()OVER(ORDE

7、RBYSUM(amount)DESCNULLSLAST)ASdense_rank5fromall_sales6whereyear=20037groupbyprd_type_id8*orderbyrankPRD_TYPE_IDSUM(AMOUNT)RANKDENSE_RANK------------------------------------------1905081.84113478270.91224402751.16332186381.2244555可以看出刚才我们不使用N

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。