Oracle分析函数使用指南:RANK、DENSE_RANK、CUME_DIST等
需积分: 9 90 浏览量
更新于2024-09-20
收藏 94KB DOC 举报
Oracle 分析函数使用总结
Oracle 分析函数是 Oracle 数据库中的一种强大工具,用于对数据进行复杂的分析和处理。这些函数可以帮助我们快速地对数据进行排名、计算百分点、n 分片等操作。本文将对 Oracle 分析函数进行总结,包括评级函数、窗口函数和报表函数等。
一、评级函数
评级函数(Ranking Function)用于计算等级、百分点、n 分片等等。下面是几个常用的评级函数:
1. RANK() 函数:返回数据项在分组中的排名。特点:在排名相等的情况下会在名次中留下空位。
2. DENSE_RANK() 函数:与 RANK() 函数不同的是它在排名相等的情况下不会在名次中留下空位。
3. CUME_DIST() 函数:返回特定值相对于一组值的位置:他是“cumulative distribution”(累积分布)的简写。
4. PERCENT_RANK() 函数:返回某个值相对于一组值的百分比排名。
5. NTILE() 函数:返回 n 分片后的值,比如三分片、四分片等等。
6. ROW_NUMBER() 函数:为每一条分组纪录返回一个数字。
下面我们将举例来说明这些函数的使用:
首先,我们显示源表数据的结构及部分数据:
SQL> desc all_sales;
名称 是否为空? 类型
------------------------------------------------------------
YEARNOTNULLNUMBER(38)
MONTHNOTNULLNUMBER(38)
PRD_TYPE_IDNOTNULLNUMBER(38)
EMP_IDNOTNULLNUMBER(38)
AMOUNTNUMBER(8,2)
SQL> select * from all_sales where rownum < 11;
YEARMONTHPRD_TYPE_IDEMP_IDAMOUNT
---------------------------------------------------
2003112110034.84
2003212115144.65
2003312120137.83
2003412125057.45
2003512117214.56
2003612115564.64
2003712112654.84
2003812117434.82
2003912119854.57
20031012121754.19
已选择 10 行。
然后,我们将举例来说明 RANK() 和 DENSE_RANK() 函数的使用:
SQL> select
2 prd_type_id, sum(amount),
3 RANK() OVER (ORDER BY SUM(amount)) as rank,
4 DENSE_RANK() OVER (ORDER BY SUM(amount)) as dense_rank
5 from all_sales
6 group by prd_type_id;
这两个函数的使用可以帮助我们对数据进行排名和百分点计算。
二、窗口函数
窗口函数(Window Function)用于对数据进行聚合操作,例如计算累积和、移动平均值等。下面是几个常用的窗口函数:
1. SUM() OVER() 函数:计算累积和。
2. AVG() OVER() 函数:计算移动平均值。
3. MAX() OVER() 函数:计算最大值。
4. MIN() OVER() 函数:计算最小值。
5. ROW_NUMBER() OVER() 函数:为每一条分组纪录返回一个数字。
下面我们将举例来说明窗口函数的使用:
SQL> select
2 prd_type_id, sum(amount) OVER (PARTITION BY prd_type_id) as sum_amount,
3 AVG(amount) OVER (PARTITION BY prd_type_id) as avg_amount,
4 MAX(amount) OVER (PARTITION BY prd_type_id) as max_amount,
5 MIN(amount) OVER (PARTITION BY prd_type_id) as min_amount
6 from all_sales;
这几个函数的使用可以帮助我们对数据进行聚合操作。
三、报表函数
报表函数(Reporting Function)用于对数据进行报表处理,例如计算累积和、移动平均值等。下面是几个常用的报表函数:
1. ROLLUP() 函数:计算累积和。
2. CUBE() 函数:计算多维度报表。
3. GROUPING SETS() 函数:计算多个分组的报表。
下面我们将举例来说明报表函数的使用:
SQL> select
2 prd_type_id, sum(amount)
3 from all_sales
4 group by ROLLUP(prd_type_id);
这几个函数的使用可以帮助我们对数据进行报表处理。
Oracle 分析函数提供了许多强大的函数来帮助我们对数据进行分析和处理。这些函数可以帮助我们快速地对数据进行排名、计算百分点、n 分片等操作。
2021-10-11 上传
2013-01-09 上传
2021-10-03 上传
2009-05-08 上传
2010-08-25 上传
2013-04-18 上传
2010-11-04 上传
2024-11-10 上传
2024-11-10 上传
2024-11-10 上传
gzlgzl123
- 粉丝: 0
- 资源: 3
最新资源
- NIST REFPROP问题反馈与解决方案存储库
- 掌握LeetCode习题的系统开源答案
- ctop:实现汉字按首字母拼音分类排序的PHP工具
- 微信小程序课程学习——投资融资类产品说明
- Matlab犯罪模拟器开发:探索《当蛮力失败》犯罪惩罚模型
- Java网上招聘系统实战项目源码及部署教程
- OneSky APIPHP5库:PHP5.1及以上版本的API集成
- 实时监控MySQL导入进度的bash脚本技巧
- 使用MATLAB开发交流电压脉冲生成控制系统
- ESP32安全OTA更新:原生API与WebSocket加密传输
- Sonic-Sharp: 基于《刺猬索尼克》的开源C#游戏引擎
- Java文章发布系统源码及部署教程
- CQUPT Python课程代码资源完整分享
- 易语言实现获取目录尺寸的Scripting.FileSystemObject对象方法
- Excel宾果卡生成器:自定义和打印多张卡片
- 使用HALCON实现图像二维码自动读取与解码