`

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分析函数RANK(),ROW_NUMBER(),LAG()等的使用方法 Oracle分析函数参考手册 开窗函数(over)详解

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

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

    Oracle 分析函数RANK(),ROW_NUMBER(),LAG()等的使用方法

    Oracle分析函数RANK(),ROW_NUMBER(),LAG()等的使用方法,需要的朋友可以参考下。

    Oracle 分析函数.doc

    Oracle 分析函数详解 1. 自动汇总函数rollup,cube, 2. rank 函数, rank,dense_rank,row_number 3. lag,lead函数 4. sum,avg,的移动增加,移动平均数 5. ratio_to_report报表处理函数 6. first,last取基数的分析函数

    ORACLE 常用分析函数

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

    oracle 分析函数

    oracle 分析函数 rank dense_rank cube等

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

    oracle分析函数,窗口函数,报表函数 分析函数(OVER) 分析函数2(Rank, Dense_rank, row_number) 分析函数3(Top/Bottom N、First/Last、NTile)

    深入浅出Oracle分析函数

    目录 Oracle开发专题之:分析函数(OVER) Oracle开发专题之:分析函数2(Rank, Dense_rank, row_number) Oracle开发专题之:分析函数3(Top/Bottom N、First/Last、NTile) Oracle开发专题之:窗口函数 ...

    Oracle_详解分析函数

    详解Oracle分析函数,主用于OLAP,以实例讲解分析函数. 如: 排序用Rank, Dense_rank, row_number 1.带空值的排列 2.Top/Bottom N查询 3.First/Last排名查询 4.按层次查询 1.窗口函数简介 2.窗口函数示例-全统计 3....

    oracle分析函数

    ·4Oracle分析函数四——函数RANK,DENSE_RANK,FIRST,LAST… ·5Oracle分析函数五——统计分析函数 ·6Oracle分析函数六——数据分布函数及报表函数 ·7Oracle分析函数七——分析函数案例 ·8Oracle分析函数八...

    Oracle分析函数中文+英文【英文非中文的配套】

    1、oracle分析函数 中文: 主要含: rank() 和 dense_rank() first_value()和last_value() row_number() LAG() range开窗函数 2、oracle分析函数 英文: 比较详细

    Oracle分析函数

    Oracle分析函数——函数列表 SUM :该函数计算组中表达式的累积和 MIN :在一个组中的数据窗口中查找表达式的最小值 MAX :在一个组中的数据窗口中查找表达式的最大值 AVG :用于计算一个组和数据窗口内表达式的...

    Oracle开发之分析函数(Rank, Dense_rank, row_number)

    本文主要是对Oracle分析函数Rank, Dense_rank, row_number的使用法,通过这些函数,我们可以对数据进行排序和分组,需要的朋友可以参考下。

    oracle分析函数在BI分析中应用事例

    分析函数应用: 1、 结构:聚合函数()over( partition by 字段1,字段2,字段3 order by 字段 desc/asc range between 数值/date preceding/flowing and 数值/date preceding/flowing) 聚合函数可以是:sum,count,...

    包含了所有的oracle函数文档

    Oracle 函数分类 :单行函数 分组函数 分析函数单行函数分为:日期函数 数字函数 字符函数 转换函数 其他函数分组函数分为:max(最大值) min(最小值) sum(求和) avg(平均) count(求个数) 分析函数分为:rank() 具有相同...

    深入浅出oracle分析函数(全)

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

    Oracle 分析函数的使用.doc

    从论坛搜到的,感觉还不错,整理成了word文档,希望对大家也有用,同时也感谢原作者。 主要讲了以下函数: 1. 自动汇总函数rollup,cube, 2. rank 函数, rank,dense_rank,row_number ...6. first,last取基数的分析函数

    oracle高级函数说明

    包含Oracle常用的高级函数,比如取前N名,每个分组的前N名等。 详细介绍Oracle分析函数(OVER、Rank、Dense_rank、row_number、Top/Bottom N、First/Last、NTile) ,窗口函数,报表函数

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

    今天是2019年第一天,在此祝大家新年快乐,梦想还在路上,让我们继续加油! 应之前的计划,今天完成这篇记录,也借此记录自己...rank() 是排名的函数,该函数组内排序后会进行跳号,分数相同的作为并列。 dense_rank()

Global site tag (gtag.js) - Google Analytics