Oracle分析函数使用指南:RANK、DENSE_RANK、CUME_DIST等
需积分: 9 34 浏览量
更新于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 上传
2012-12-13 上传
2019-01-24 上传
2013-04-18 上传
2012-09-18 上传
2010-11-04 上传
2024-12-22 上传
gzlgzl123
- 粉丝: 0
- 资源: 3
最新资源
- VxWorks操作系统板级支持包的设计与实现
- Vx Works环境下串口驱动程序设计
- Vx Works环境下IP-CATV网关驱动程序的设计与实现
- Linux与VxWorks的板级支持包开发的比较与分析
- 基于公共机房安排管理系统
- ISaGRAF在SUPMAX500组态软件中的应用
- Ipv6高级套接口的研究和实现
- HTTP在嵌入式系统中的应用及扩展
- Oracle9i数据库管理实务讲座.pdf
- PL/SQL程序設計pdf格式
- CDN网络路由技术CDN网络路由技术
- 1700mm精轧机组液压AGC程序包变量监控
- 4种实时操作系统实时性的分析对比
- DOM文档对象模型(微软最近教程)
- c与c++嵌入式系统编程.pdf
- oracle傻瓜手册