`
nannan408
  • 浏览: 1783333 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle中聚合函数rank()使用方法

 
阅读更多

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
分享到:
评论

相关推荐

    【Oracle】LISTAGG函数的使用.pdf

    2. 作为聚合函数,类似于 sum()、count()、avg() 等函数,使用方法相似: LISTAGG(合并字段, 连接符) WITHIN GROUP(ORDER BY 合并字段排序) -- 后面跟 GROUP BY 语句 分析函数和聚合函数本质上都是对数据进行分组...

    oracle常用分析函数与聚合函数的用法

    在Oracle数据库中,分析函数和聚合函数是SQL查询中用于处理和汇总数据的重要工具。本文将详细介绍两者的主要功能和用法。 首先,我们关注的是排名函数。在Oracle中,有三种常用的排名函数: 1. `RANK()`: 这个函数...

    Oracle中的分析函数详解

    Oracle数据库系统是世界上最广泛使用的数据库管理系统之一,尤其在企业级应用中占据主导地位。其中,Oracle的分析函数是其强大的特性之一,它允许用户在单个SQL查询中执行复杂的分析操作,而无需使用子查询或者自...

    oracle最常用的函数或方法总结

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,其丰富的函数和方法库为SQL查询提供了强大的支持。在日常的数据操作和分析中,掌握一些常用的Oracle函数和方法是至关重要的。以下是对"Oracle最常用的...

    oracle函数大全-数字-字符-日期-聚合函数

    最后,提供的文档和文本文件,如"oracle日期和时间处理汇总.doc"、"Oracle聚合函数RANK和dense_rank的使用.htm"等,都是极好的学习资源,可以深入研究每个函数的详细信息和示例。通过阅读和实践,你将能够充分利用...

    oracle开窗函数学习技巧总结

    - 当`OVER`子句中使用`PARTITION BY NULL`时,意味着所有的行都被视为同一个分区,即整个结果集被视为一个整体来进行计算。 #### 六、总结 通过本文的学习,我们可以看到Oracle开窗函数的强大之处。无论是进行复杂...

    oracle 9i 分析函数参考手册.rar

    6. AVG()、SUM()、COUNT()等聚合函数在OVER子句中也可以作为分析函数使用,它们会对每个分区或排序组计算累积值。 使用分析函数的实际应用场景: 1. 计算每个部门的员工平均工资。 2. 分析销售数据,找出连续季度...

    ORACLE常用分析函数说明

    它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。 开窗函数是分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化。开窗函数可以指定数据窗口的大小和范围,例如...

    oracle 10G函数大全(中文)

    - 分组函数如COUNT、SUM、AVG、MAX、MIN在GROUP BY子句中使用,对分组数据进行计算。 - 分析函数如ROW_NUMBER、RANK、DENSE_RANK、LAG、LEAD等,用于窗口查询,提供行间计算功能。 5. **连接和比较函数**: - ...

    oracle最全函数大全

    这些函数可以大致分为以下几类:分析函数、聚合函数、转换函数、日期型函数、字符型函数、数值型函数以及其他函数。本文将详细介绍每种类型的函数,并提供具体的使用场景和示例。 #### 二、分析函数 分析函数主要...

    Oracle函数大全-详细介绍.rar

    "oracle函数介绍(3) 著名函数之聚合函数.doc"和"oracle函数介绍(4) 非著名函数之聚合函数.doc"深入探讨了这些函数的使用场景和最佳实践。 分析函数是Oracle中的一个重要特性,它们允许在分组或排序的数据集上进行...

    Oracle内建函数大全

    - CONNECT_BY_ROOT/CONNECT_BY_ISLEAF:在层次查询中使用,标识根节点或叶子节点。 10. **系统信息函数** - USER:返回当前用户的名称。 - DBMS_METADATA:获取对象的DDL语句,用于脚本生成。 以上只是Oracle内...

    Oracle分析函数

    Oracle 分析函数中提供了多种聚合函数,包括: 3.1 AVG 函数 AVG 函数用于计算表达式的平均值。 3.2 CORR 函数 CORR 函数用于计算两个表达式之间的互相关性。 3.3 COUNT 函数 COUNT 函数用于计算表达式的计数...

    oracle常用函数使用说明

    1. **聚合函数**:这些函数用于对一组值进行操作并返回单个结果。例如: - `COUNT(*)`:计算行数。 - `SUM(column_name)`:求列的总和。 - `AVG(column_name)`:计算平均值。 - `MAX(column_name)`:找出最大值...

    oracle函数大全(分类成9个word文档)

    3. "oracle函数介绍(3) 著名函数之聚合函数.doc":聚合函数用于对一组值进行操作并返回一个单一的汇总值。SUM()、AVG()、MAX()和MIN()是最常见的例子,它们分别用于求和、计算平均值、找出最大值和最小值。 4. ...

    ORACLE_分析函数大全

    这与传统的聚合函数(如SUM、AVG、COUNT等)不同,聚合函数通常只返回单一行的结果。 分析函数的关键在于“窗口”或“框架”的概念,窗口定义了在计算中要考虑的行的集合。窗口可以按照行号顺序、特定列的排序或者...

    oracle常用函数介绍

    1. `GROUP BY`: 用于分组数据,常与聚合函数一起使用。 2. `RANK()`, `DENSE_RANK()`, `ROW_NUMBER()`: 为每一行分配一个唯一的排名。 以上只是Oracle众多函数中的一部分,实际使用中还有许多其他函数,如条件判断...

    oracle 10G函数大全

    6. **聚合函数**: - COUNT:计算行数。 - SUM:计算数值列的总和。 - AVG:计算平均值。 - MAX/MIN:找到数值列的最大值/最小值。 7. **转换函数**: - TO_CHAR/TO_DATE:将数值或日期转换为字符串,反之亦然...

    oracle分析函数及开窗函数

    Oracle自8.1.6版本开始引入了分析函数,这类函数主要用于计算基于组的聚合值,并且与传统的聚合函数不同的是,分析函数可以针对每个组返回多行结果,而不仅仅是单一的聚合值。这种特性使得分析函数在数据处理和报表...

Global site tag (gtag.js) - Google Analytics