Rank() over()的用法
创建一个test表,并插入6条数据。
CREATE TABLE test
(a INT,b INT,c CHAR
)
INSERT INTO test VALUES(1,3,'E')
INSERT INTO test VALUES(2,4,'A')
INSERT INTO test VALUES(3,2,'D')
INSERT INTO test VALUES(3,5,'B')
INSERT INTO test VALUES(4,2,'C')
INSERT INTO test VALUES(2,4,'B')

SELECT * from test

a           b           c
----------- ----------- ----
1           3           E
2           4           A
3           2           D
3           5           B
4           2           C
2           4           B

(6 行受影响)

1、整个结果集是一个分组,以a进行排名

SELECT a,b,c,rank () OVER (ORDER BY a) rank FROM test

a           b           c    rank
----------- ----------- ---- --------------------
1           3           E    1
2           4           A    2
2           4           B    2
3           2           D    4
3           5           B    4
4           2           C    6

(6 行受影响)

2、整个结果集是一个分组,以b进行排名

SELECT a,b,c,rank () OVER (ORDER BY b) rank FROM test

a           b           c    rank
----------- ----------- ---- --------------------
3           2           D    1
4           2           C    1
1           3           E    3
2           4           A    4
2           4           B    4
3           5           B    6

(6 行受影响)

3、以a,b进行分组,在每个组内以b进行排名。分了5个组,第2行跟第3行是一个组,其他的每行是一个组。在第2行与第3行的组内以b排名,并列为1

SELECT a,b,c,rank () OVER (PARTITION BY a,b ORDER BY b) rank FROM test

a           b           c    rank
----------- ----------- ---- --------------------
1           3           E    1
2           4           A    1
2           4           B    1
3           2           D    1
3           5           B    1
4           2           C    1

(6 行受影响)

4、以a,b进行分组,在每个组内以c进行排名。分了5个组,第2行跟第3行是一个组,其他的每行是一个组。在第2行与第3行的组内以c排名,由于c列一个是A,一个是B,所以Rank分别为1、2。

SELECT a,b,c,rank () OVER (PARTITION BY a,b ORDER BY c) rank FROM test

a           b           c    rank
----------- ----------- ---- --------------------
1           3           E    1
2           4           A    1
2           4           B    2
3           2           D    1
3           5           B    1
4           2           C    1

(6 行受影响)

总结:1、partition  by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组。

2、Rank 是在每个分组内部进行排名的。

Technorati 标签: rank over,partition,sql
posted on 2010-05-29 15:57 拒绝浮躁 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/mycoding/archive/2010/05/29/1747065.html

Rank() over()的用法相关推荐

  1. Rank() over的用法

    oracle创建表: create table EMPLOYEE (empid VARCHAR2(50) not null,name VARCHAR2(50),salary NUMBER(5),sex ...

  2. Sql rank类的用法

    为了方便讲解假设我们有一个成绩表内容如下 1.rank() over的用法 作用:查出指定条件后的进行排名,条件相同排名相同,排名间断不连续. 例如:成绩排名,使用这个函数,成绩相同的两名是并列,下一 ...

  3. Matlab 中 rank() 函数的用法—求矩阵的秩

    >> a=round(rand(5)) a = 1     0     0     0     1      1     0     1     0     0      0     1 ...

  4. 函数专题:sum、row_number、count、rank\dense_rank over

    来源:http://blog.csdn.net/bbliutao/article/details/7727320 一.sum over sum over主要用来对某个字段值进行逐步累加 SELECT  ...

  5. RedisTemplate操作redis五大类型用法详解(springboot整合redis版本)

    1.案例说明 springboot整合redis之后,提供了操作redis的简便方式 通过通用对象redisTemplate方式操作String,Hash,List,Set SortSet五大数据类型 ...

  6. mysql基础(全,必看)

    MySQL基础 一.MySQL概述 1.什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access ...

  7. oracle 分析函数、GROUPING函数

    分析函数 over(Partition by...) 一个超级牛皮的ORACLE特有函数.天天都用ORACLE,用了快2年了.最近才接触到这个功能强大而灵活的函数.真实惭愧啊!oracle的分析函数o ...

  8. PRESTO SQL总结分享

    1.常用SQL语法 1.1 字符substr(staff_leave_date,1,10) concat(string1, ..., stringN) → varchar--拼接多个字符串 lengt ...

  9. pytorch基础学习(四) 数据处理(一)

    1. tensor的attributes tensor有以下几个常用的attributes,首先看一段代码: import torch t = torch.Tensor() print(type(t) ...

最新文章

  1. cfa英语不好的怎么学_英语不好,如何备考CFA?
  2. 无需人工!无需训练!构建知识图谱 BERT一下就行了!
  3. android support library github,Android Support Library 之 夜间模式
  4. 设计模式学习笔记——迭代器(Iterator)模式
  5. Oracle wm_concat() 函数
  6. X86汇编语言从实模式到保护模式09:32位x86处理器编程架构
  7. 老李推荐:第14章8节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-获取控件列表并建立控件树 1...
  8. jupyter一直*_不用下载安装,你的机器人可以直接在浏览器里跳舞丨Jupyter-ROS
  9. iOS中AutoLayout自动布局,自适应高度
  10. AWS--EC2基本概念
  11. dsoframer java_基于DsoFramer控件的Office编辑控件
  12. python 京东 价格监控_双十一购物 || Python监控商品价格 插件监控
  13. 垃圾分类数据集+垃圾分类识别训练代码(支持googlenet, resnet, inception_v3, mobilenet_v2)
  14. 微信登录(官方指导)
  15. php中验证码显示不出,PHP验证码显示不出来
  16. java可视化图表_8个华丽而实用的Java图表应用
  17. 中美加征关税HS码清单列表
  18. Vue进阶(幺贰柒):插槽详解
  19. Kali信息收集学习笔记
  20. 实现用户名字母数字大小写符号(正则表达式)

热门文章

  1. Django mysql 多线程_【实例:利用Django管理后台管理IP地址】(四)Django test+多线程+数据库+(踩坑)...
  2. python 密度聚类 使用_使用wgd进行全基因组复制分析
  3. 把qss添加进qrc文件_PDF怎么压缩?一招教你快速压缩PDF文件
  4. 嵌入式linux应用程序升级,基于嵌入式Linux平台的应用升级机制的研究与设计
  5. 便利vector_C++面试题之list和vector的区别
  6. oracle 统计信息字典表,Oracle数据字典表查询
  7. MySQL面试题 | 附答案解析(一)
  8. opencv数字图像处理(图像边缘)
  9. Open3D KdTree建立、3种近邻搜索及结果可视化
  10. C++:随笔5---this指针和类的继承