`

oracle 分析函数 RANK()

阅读更多
RANK()既是一个聚合函数,也是一个分析函数

其具体的语法如下:

聚合函数语法:




分析函数的语法:




RANK计算的是一个组值中每个值的等级,返回的是整数


作为聚合函数时,例子如下:
SELECT RANK(1250, 30) WITHIN GROUP(ORDER BY sal,deptno) "Rank" FROM emp;

   Rank
----------
         3

上面SQL表示的意思是:sal 为1250,并且deptno为30的记录,通过sal,deptno排序后所在的位置。

原表的结果如下:

SQL> select * from emp order by sal,deptno;

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7900 JAMES      CLERK           7698 03-DEC-81        950                    30
      7369 SMITH      CLERK           7902 17-DEC-80     1064.8                    20
      7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30
      7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30
      7876 ADAMS      CLERK           7788 23-MAY-87     1464.1                    20
      7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30
      7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30
      7934 MILLER     CLERK           7782 23-JAN-82     1730.3                    10
      7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30
      7782 CLARK      MANAGER         7839 09-JUN-81    3260.95                    10
      7566 JONES      MANAGER         7839 02-APR-81    3959.73                    20

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7788 SCOTT      ANALYST         7566 19-APR-87       3993                    20
      7902 FORD       ANALYST         7566 03-DEC-81       3993                    20
      7839 KING       PRESIDENT            17-NOV-81       6655                    10

14 rows selected.


作为分析函数使用时,其意思是分析每个记录的排序或等级,rank()值相同时排名相同,其后排名跳跃不连续

SQL> select *
  2   from (  select deptno,
  3      rank() over(partition by deptno order by sal desc) rw,
  4   ename, sal
  5   from emp    )    where rw <= 4;

    DEPTNO         RW ENAME             SAL
---------- ---------- ---------- ----------
        10          1 KING             6655
        10          2 CLARK         3260.95
        10          3 MILLER         1730.3
        20          1 SCOTT            3993
        20          1 FORD             3993
        20          3 JONES         3959.73
        20          4 ADAMS          1464.1
        30          1 BLAKE            2850
        30          2 ALLEN            1600
        30          3 TURNER           1500
        30          4 WARD             1250

    DEPTNO         RW ENAME             SAL
---------- ---------- ---------- ----------
        30          4 MARTIN           1250

12 rows selected.

注意:作为分析函数时,与DENSE_RANK()和ROW_NUMBER()的区别。

dense_rank()值相同时排名相同,其后排名连续不跳跃

row_number()值相同时排名不相等,其后排名连续不跳跃
  • 大小: 6.6 KB
  • 大小: 2.9 KB
分享到:
评论

相关推荐

    Oracle中的分析函数详解

    其中,Oracle的分析函数是其强大的特性之一,它允许用户在单个SQL查询中执行复杂的分析操作,而无需使用子查询或者自连接。这篇文档将深入探讨Oracle中的分析函数,帮助你更好地理解和利用这一功能。 一、什么是...

    ORACLE分析函数大全

    Oracle分析函数是数据库管理系统Oracle中的一个强大特性,它允许用户在SQL查询中执行复杂的分析操作。分析函数在处理报表和数据迁移任务时尤其有用,因为它们可以基于分组计算聚合值,并为每个分组返回多行,而不...

    oracle 分析函数详解(有例子)

    2 Oracle开发专题之:分析函数 Rank Dense rank row number 3 Oracle开发专题之:分析函数3 Top Bottom N First Last NTile 4 Oracle开发专题之:窗口函数 5 Oracle开发专题之:报表函数 6 Oracle开发专题之:...

    ORACLE 分析函数大全

    Oracle 分析函数是一种强大的SQL工具,它允许你在处理数据时执行复杂的分析操作,而不像聚合...参考书籍如Tom Kyte的《Expert One-on-One》和Oracle 9i SQL Reference等,都是深入学习和理解Oracle分析函数的宝贵资源。

    Oracle分析函数

    Oracle 分析函数详解 Oracle 分析函数是 Oracle 数据库中的一种强大功能,能够帮助用户快速进行数据分析和处理。在本文中,我们将对 Oracle 分析函数进行详细的介绍,并对其各个函数进行解释。 一、总体介绍 ...

    oracle 分析函数学习笔记

    Oracle的分析函数还包括`ROW_NUMBER`, `RANK`, `DENSE_RANK`用于行号分配,`LEAD`, `LAG`用于获取前后行数据,`FIRST_VALUE`, `LAST_VALUE`获取窗口范围内的第一个或最后一个值,以及`NTILE`进行分桶等。这些函数在...

    ORACLE分析函数.pdf

    Oracle分析函数是数据库管理系统Oracle中的一种高级SQL特性,它允许用户在单个查询中对一组行进行计算,而无需使用子查询或自连接。这些函数极大地增强了数据分析和报告的能力,提高了查询性能。以下是对Oracle分析...

    Oracle分析函数.doc

    Oracle分析函数是数据库管理系统Oracle中的一种高级特性,用于处理和分析数据集,提供了一种高效的方式来执行聚合操作,而无需多次查询数据库。分析函数能够直接在单次查询中完成复杂的数据计算,包括排序、分组、...

    oracle分析函数.doc

    Oracle分析函数是数据库管理系统Oracle中一组强大的工具,用于处理集合数据,特别是在复杂的报表和数据分析场景中。它们允许用户在单个SQL查询中执行聚合操作,同时保持行的原始顺序,这是传统的GROUP BY函数无法...

    Oracle 分析函数.doc

    Oracle 分析函数是数据库查询中的强大工具,它们允许在单个SQL语句中对结果集进行复杂的计算和分组操作,极大地简化了数据分析的过程。在Oracle 8i版本之后引入,分析函数为处理大量数据提供了高效的方法,避免了...

    ORACLE 常用分析函数

    分析函数2(Rank, Dense_rank, row_number);分析函数3(Top/Bottom N、First/Last、NTile);窗口函数;报表函数;分析函数总结;26个分析函数;PLSQL开发笔记和小结;分析函数简述  ROW_NUMBER () OVER([partition_clause]...

    ORACLE分析函数.ppt

    ORACLE分析函数 ORACLE分析函数是数据库管理系统中的一种功能强大且灵活的分析工具,能够对数据进行复杂的分析和处理。通过使用分析函数,开发者可以更加方便地实现业务逻辑,提高查询效率和数据处理速度。 在本...

    ORACLE_分析函数大全

    除了这些,Oracle分析函数还包括RANK、DENSE_RANK、ROW_NUMBER等排名函数,LEAD和LAG用于获取当前行之前或之后的值,FIRST_VALUE和LAST_VALUE则返回窗口内的第一个或最后一个值,以及NTILE用于将数据分桶等。...

    Oracle分析函数教程

    Oracle分析函数是数据库管理系统Oracle中的一个重要特性,自8.1.6版本开始引入,它们用于执行基于组的聚合计算,并且为每个组返回多行结果,而不仅仅是单行。这使得分析函数在数据分析和报表生成方面非常有用,能够...

    oracle分析函数,窗口函数,报表函数

    Oracle 分析函数、窗口函数和报表函数是数据库查询和数据分析中的关键工具,尤其在复杂的OLAP(在线分析处理)系统中发挥着重要作用。在Oracle数据库中,这些功能提供了对大量数据进行高效处理的能力,帮助用户生成...

    深入浅出Oracle分析函数

    《深入浅出Oracle分析函数》是一本专注于Oracle数据库中分析函数使用的专著。Oracle分析函数是数据库查询中不可或缺的一部分,尤其对于数据分析师和数据库管理员来说,掌握这些函数能极大地提高数据处理的效率和精度...

    oracle分析函数

    Oracle分析函数是数据库管理系统Oracle中的一种高级SQL特性,自8.1.6版本引入,极大地扩展了SQL在数据处理和分析上的能力。分析函数的主要作用是进行聚合操作,但与传统的聚合函数(如SUM, COUNT, AVG等)不同,它们...

    oracle分析函数全面解析

    Oracle分析函数是数据库管理系统Oracle中的一种高级查询工具,主要用于处理复杂的报表统计和数据分析。它们在OLAP(在线分析处理)系统中尤其重要,因为这类系统往往需要处理大量数据并进行复杂的聚合计算,而分析...

Global site tag (gtag.js) - Google Analytics