Oracle对于rank和dense_rank已经支持合计功能,不过这次我仅仅使用了其分析功能。具体语法如下:RANK ( ) OVER ( [query_partition_clause] order_by_clause )。
下面给出一些来自网上的示例:
TABLE:S (subject,mark)
数学,80
语文,70
数学,90
数学,60
数学,100
语文,88
语文,65
语文,77
现在我想要的结果是:每门科目的前3名的分数
数学,100
数学,90
数学,80
语文,88
语文,77
语文,70
那么语句就这么写:
select * from (select rank() over(partition by subject order by mark desc) rk,S.* from S) T
where T.rk<=3;
dense_rank与rank()用法相当,但是有一个区别:dence_rank在处理相同的等级时,等级的数值不会跳过。rank则跳过。
例如:表
A B C
a liu wang
a jin shu
a cai kai
b yang du
b lin ying
b yao cai
b yang 99
例如:当rank时为:
select m.a,m.b,m.c,rank() over(partition by a order by b) liu from test3 m
A B C LIU
a cai kai 1
a jin shu 2
a liu wang 3
b lin ying 1
b yang du 2
b yang 99 2
b yao cai 4
而如果用dense_rank时为:
select m.a,m.b,m.c,dense_rank() over(partition by a order by b) liu from test3 m
A B C LIU
a cai kai 1
a jin shu 2
a liu wang 3
b lin ying 1
b yang du 2
b yang 99 2
b yao cai 3
此文转自:http://www.mianwww.com/?p=12457
分享到:
相关推荐
2. 作为聚合函数,类似于 sum()、count()、avg() 等函数,使用方法相似: LISTAGG(合并字段, 连接符) WITHIN GROUP(ORDER BY 合并字段排序) -- 后面跟 GROUP BY 语句 分析函数和聚合函数本质上都是对数据进行分组...
在Oracle数据库中,分析函数和聚合函数是SQL查询中用于处理和汇总数据的重要工具。本文将详细介绍两者的主要功能和用法。 首先,我们关注的是排名函数。在Oracle中,有三种常用的排名函数: 1. `RANK()`: 这个函数...
Oracle数据库系统是世界上最广泛使用的数据库管理系统之一,尤其在企业级应用中占据主导地位。其中,Oracle的分析函数是其强大的特性之一,它允许用户在单个SQL查询中执行复杂的分析操作,而无需使用子查询或者自...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,其丰富的函数和方法库为SQL查询提供了强大的支持。在日常的数据操作和分析中,掌握一些常用的Oracle函数和方法是至关重要的。以下是对"Oracle最常用的...
最后,提供的文档和文本文件,如"oracle日期和时间处理汇总.doc"、"Oracle聚合函数RANK和dense_rank的使用.htm"等,都是极好的学习资源,可以深入研究每个函数的详细信息和示例。通过阅读和实践,你将能够充分利用...
- 当`OVER`子句中使用`PARTITION BY NULL`时,意味着所有的行都被视为同一个分区,即整个结果集被视为一个整体来进行计算。 #### 六、总结 通过本文的学习,我们可以看到Oracle开窗函数的强大之处。无论是进行复杂...
6. AVG()、SUM()、COUNT()等聚合函数在OVER子句中也可以作为分析函数使用,它们会对每个分区或排序组计算累积值。 使用分析函数的实际应用场景: 1. 计算每个部门的员工平均工资。 2. 分析销售数据,找出连续季度...
它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。 开窗函数是分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化。开窗函数可以指定数据窗口的大小和范围,例如...
- 分组函数如COUNT、SUM、AVG、MAX、MIN在GROUP BY子句中使用,对分组数据进行计算。 - 分析函数如ROW_NUMBER、RANK、DENSE_RANK、LAG、LEAD等,用于窗口查询,提供行间计算功能。 5. **连接和比较函数**: - ...
这些函数可以大致分为以下几类:分析函数、聚合函数、转换函数、日期型函数、字符型函数、数值型函数以及其他函数。本文将详细介绍每种类型的函数,并提供具体的使用场景和示例。 #### 二、分析函数 分析函数主要...
"oracle函数介绍(3) 著名函数之聚合函数.doc"和"oracle函数介绍(4) 非著名函数之聚合函数.doc"深入探讨了这些函数的使用场景和最佳实践。 分析函数是Oracle中的一个重要特性,它们允许在分组或排序的数据集上进行...
- CONNECT_BY_ROOT/CONNECT_BY_ISLEAF:在层次查询中使用,标识根节点或叶子节点。 10. **系统信息函数** - USER:返回当前用户的名称。 - DBMS_METADATA:获取对象的DDL语句,用于脚本生成。 以上只是Oracle内...
Oracle 分析函数中提供了多种聚合函数,包括: 3.1 AVG 函数 AVG 函数用于计算表达式的平均值。 3.2 CORR 函数 CORR 函数用于计算两个表达式之间的互相关性。 3.3 COUNT 函数 COUNT 函数用于计算表达式的计数...
1. **聚合函数**:这些函数用于对一组值进行操作并返回单个结果。例如: - `COUNT(*)`:计算行数。 - `SUM(column_name)`:求列的总和。 - `AVG(column_name)`:计算平均值。 - `MAX(column_name)`:找出最大值...
3. "oracle函数介绍(3) 著名函数之聚合函数.doc":聚合函数用于对一组值进行操作并返回一个单一的汇总值。SUM()、AVG()、MAX()和MIN()是最常见的例子,它们分别用于求和、计算平均值、找出最大值和最小值。 4. ...
这与传统的聚合函数(如SUM、AVG、COUNT等)不同,聚合函数通常只返回单一行的结果。 分析函数的关键在于“窗口”或“框架”的概念,窗口定义了在计算中要考虑的行的集合。窗口可以按照行号顺序、特定列的排序或者...
1. `GROUP BY`: 用于分组数据,常与聚合函数一起使用。 2. `RANK()`, `DENSE_RANK()`, `ROW_NUMBER()`: 为每一行分配一个唯一的排名。 以上只是Oracle众多函数中的一部分,实际使用中还有许多其他函数,如条件判断...
6. **聚合函数**: - COUNT:计算行数。 - SUM:计算数值列的总和。 - AVG:计算平均值。 - MAX/MIN:找到数值列的最大值/最小值。 7. **转换函数**: - TO_CHAR/TO_DATE:将数值或日期转换为字符串,反之亦然...
Oracle自8.1.6版本开始引入了分析函数,这类函数主要用于计算基于组的聚合值,并且与传统的聚合函数不同的是,分析函数可以针对每个组返回多行结果,而不仅仅是单一的聚合值。这种特性使得分析函数在数据处理和报表...