【格式】

格式一:RANK() OVER ( [partition by 分区字段] order by 排序字段 asc/desc)

格式二:DENSE_RANK() OVER ( [partition by 分区字段] order by 排序字段 asc/desc)

【说明】

  • rank():表示排序结果不连续;
  • dense_rank():表示排序结果连续;
  • partition by:表示分区统计,该项为可选项;
  • order by:表示按指定字段进行排序。

【创建样例数据】

先创建数据表,建表语句如下:

-- Create table
create table T_PRODUT_SALES
(
  product VARCHAR2(20) not null,
  area    VARCHAR2(20) not null,
  sale    NUMBER not null
)
tablespace TEST_SPACE
  pctfree 10
  initrans 1
  maxtrans 255;
-- Add comments to the table 
comment on table T_PRODUT_SALES
  is '产品销量表-演示用';
-- Add comments to the columns 
comment on column T_PRODUT_SALES.product
  is '产品名称';
comment on column T_PRODUT_SALES.area
  is '地区';
comment on column T_PRODUT_SALES.sale
  is '销量';

再往表中插入数据,SQL语句如下:

insert into T_PRODUT_SALES (product, area, sale)
values ('产品1', '地区1', 50);
insert into T_PRODUT_SALES (product, area, sale)
values ('产品1', '地区2', 60);
insert into T_PRODUT_SALES (product, area, sale)
values ('产品1', '地区3', 70);
insert into T_PRODUT_SALES (product, area, sale)
values ('产品2', '地区1', 50);
insert into T_PRODUT_SALES (product, area, sale)
values ('产品2', '地区2', 65);
insert into T_PRODUT_SALES (product, area, sale)
values ('产品2', '地区3', 75);
insert into T_PRODUT_SALES (product, area, sale)
values ('产品3', '地区1', 40);
insert into T_PRODUT_SALES (product, area, sale)
values ('产品3', '地区2', 60);
insert into T_PRODUT_SALES (product, area, sale)
values ('产品3', '地区3', 85);

最后查询表中数据,返回结果如下:

【样例展示1】

sql语句如下:

select product,area,sale,rank() over(order by sale desc) as 排名 from T_PRODUT_SALES

返回结果如下图:按销量进行不连续排名。

【样例展示2】

sql语句如下:

select product,area,sale,dense_rank() over(order by sale desc) as 排名 from T_PRODUT_SALES

返回结果如下图:按销量进行连续排名。

【样例展示3】

sql语句如下:

select product,area,sale,rank() over(partition by area order by sale desc) as 排名 from T_PRODUT_SALES

返回结果如下图:按地区分区进行不连续排名。

【样例展示4】

sql语句如下:

select product,area,sale,dense_rank() over(partition by area order by sale desc) as 排名 from T_PRODUT_SALES

返回结果如下图:按地区分区进行连续排名。

Oracle中rank函数详解相关推荐

  1. oracle中to_date函数详解

    to_date()与24小时制表示法及mm分钟的显示: 一.在使用Oracle的to_date函数来做日期转换时,很多Java程序员也许会直接的采用"yyyy-MM-dd HH:mm:ss& ...

  2. oracle中sign函数详解

    在Oracle/PLSQL中, sign 函数返回一个数字的正负标志. 语法如下:sign( number ) number 要测试标志的数字. If number < 0, then sign ...

  3. Oracle中pivot函数详解

    [基本介绍] [格式]:pivot(聚合函数 for 需要转为列的字段名 in(需要转为列的字段值)) [说明]:实现将指定字段的字段值转换为列的效果. [环境]:如下图是样例展示所使用的oracle ...

  4. Oracle中decode函数详解

    [函数格式]:         decode (         expression,         condition_01, result_01,         condition_02, ...

  5. Oracle中rollup函数详解

    [基本介绍] [格式]:group by rollup(字段1,字段2,字段3,...,字段n) [说明]:rollup主要用于分组汇总,如果rollup中有n个字段,则会分别按[字段1].[字段1, ...

  6. Matlab中 pdist 函数详解

    学习笔记,仅供参考,有错必纠 转载自:Matlab中 pdist 函数详解(各种距离的生成); pdist Pairwise distance between pairs of objects. Sy ...

  7. c++ memset 语言_C/C++ 中memset() 函数详解及其作用介绍

    memset 函数是内存赋值函数,用来给某一块内存空间进行赋值的: 包含在头文件中,可以用它对一片内存空间逐字节进行初始化: 原型为 : void *memset(void *s, int v, si ...

  8. matlab中xcorr函数详解

    Matlab中xcorr函数详解 引言 在matlab中查找相关函数时,找到了xcov函数和xcorr函数,仔细看了帮助文档,发现虽然计算公式不一样,但是两个函数用法相同,计算出的值也相同,于是在翻了 ...

  9. oracle中的用户详解 【转】

    oracle中的用户详解 [转] - feiyun8616 - 博客园 (cnblogs.com)https://www.cnblogs.com/feiyun8616/p/6497690.htmlor ...

  10. Linux中fork()函数详解

    Linux中fork()函数详解 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事, ...

最新文章

  1. LSTM 为何如此有效?这五个秘密是你要知道的
  2. 项目管理利器taiga快速安装
  3. idea中实体类右击没有ptg_几个牛逼的IDEA插件,Java开发者撸码神器,还带动图的!...
  4. window 修改字符集为utf8
  5. matlab条形图添加误差线_在Excel图表中添加误差线和对误差线进行设置的技巧
  6. service层的方法上使用@Transactional注解,程序发生异常没有回滚
  7. 就是要让你搞懂 Nginx,这篇就够了!
  8. 使用 Python ElementTree 生成 xml
  9. C++之指针探究(四):指针和二维数组
  10. php 同步退出,Ucenter 的同步登录与同步退出
  11. VS2010应用程序工程中文件的组成结构
  12. Linux下如何实现对某个文件夹进行压缩
  13. Deep3DFaceReconstruction让一张人脸照片变成三维的真人脸
  14. 录入姓名完成座位表,学习前端的小伙伴可以关注一波,用js+html+css构成
  15. 二叉查找树,二叉平衡树
  16. php 完成时钟,PHP 绘制时钟 高洛峰 细说PHP
  17. 如何做好软件系统的架构设计?
  18. JavaScript实现购物车计算价格功能
  19. 为什么不能每周发布一次?
  20. mysql中高阶玩法系列(六)

热门文章

  1. 计算机二级C语言公共基础知识,以及习题总结(三)查找和排序
  2. 微信小程序 + 腾讯位置服务SDK 实现路线规划
  3. 简单易懂的讲解深度学习(入门系列之一)
  4. 全网最全编程学习网站汇总
  5. ASP.NET显示农历时间
  6. 宋宝华: 纪念金庸先生——程序员的武侠世界
  7. windows10下whisper的安装使用和CUDA的配置
  8. 基于opencv的证件照换背景
  9. 蓝桥杯 算法提高 盾神与条状项链
  10. 从学校考的计算机是几级呀,计算机考级共分为几级