Rank() over()的用法
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
转载于:https://www.cnblogs.com/mycoding/archive/2010/05/29/1747065.html
Rank() over()的用法相关推荐
- Rank() over的用法
oracle创建表: create table EMPLOYEE (empid VARCHAR2(50) not null,name VARCHAR2(50),salary NUMBER(5),sex ...
- Sql rank类的用法
为了方便讲解假设我们有一个成绩表内容如下 1.rank() over的用法 作用:查出指定条件后的进行排名,条件相同排名相同,排名间断不连续. 例如:成绩排名,使用这个函数,成绩相同的两名是并列,下一 ...
- Matlab 中 rank() 函数的用法—求矩阵的秩
>> a=round(rand(5)) a = 1 0 0 0 1 1 0 1 0 0 0 1 ...
- 函数专题:sum、row_number、count、rank\dense_rank over
来源:http://blog.csdn.net/bbliutao/article/details/7727320 一.sum over sum over主要用来对某个字段值进行逐步累加 SELECT ...
- RedisTemplate操作redis五大类型用法详解(springboot整合redis版本)
1.案例说明 springboot整合redis之后,提供了操作redis的简便方式 通过通用对象redisTemplate方式操作String,Hash,List,Set SortSet五大数据类型 ...
- mysql基础(全,必看)
MySQL基础 一.MySQL概述 1.什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access ...
- oracle 分析函数、GROUPING函数
分析函数 over(Partition by...) 一个超级牛皮的ORACLE特有函数.天天都用ORACLE,用了快2年了.最近才接触到这个功能强大而灵活的函数.真实惭愧啊!oracle的分析函数o ...
- PRESTO SQL总结分享
1.常用SQL语法 1.1 字符substr(staff_leave_date,1,10) concat(string1, ..., stringN) → varchar--拼接多个字符串 lengt ...
- pytorch基础学习(四) 数据处理(一)
1. tensor的attributes tensor有以下几个常用的attributes,首先看一段代码: import torch t = torch.Tensor() print(type(t) ...
最新文章
- cfa英语不好的怎么学_英语不好,如何备考CFA?
- 无需人工!无需训练!构建知识图谱 BERT一下就行了!
- android support library github,Android Support Library 之 夜间模式
- 设计模式学习笔记——迭代器(Iterator)模式
- Oracle wm_concat() 函数
- X86汇编语言从实模式到保护模式09:32位x86处理器编程架构
- 老李推荐:第14章8节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-获取控件列表并建立控件树 1...
- jupyter一直*_不用下载安装,你的机器人可以直接在浏览器里跳舞丨Jupyter-ROS
- iOS中AutoLayout自动布局,自适应高度
- AWS--EC2基本概念
- dsoframer java_基于DsoFramer控件的Office编辑控件
- python 京东 价格监控_双十一购物 || Python监控商品价格 插件监控
- 垃圾分类数据集+垃圾分类识别训练代码(支持googlenet, resnet, inception_v3, mobilenet_v2)
- 微信登录(官方指导)
- php中验证码显示不出,PHP验证码显示不出来
- java可视化图表_8个华丽而实用的Java图表应用
- 中美加征关税HS码清单列表
- Vue进阶(幺贰柒):插槽详解
- Kali信息收集学习笔记
- 实现用户名字母数字大小写符号(正则表达式)
热门文章
- Django mysql 多线程_【实例:利用Django管理后台管理IP地址】(四)Django test+多线程+数据库+(踩坑)...
- python 密度聚类 使用_使用wgd进行全基因组复制分析
- 把qss添加进qrc文件_PDF怎么压缩?一招教你快速压缩PDF文件
- 嵌入式linux应用程序升级,基于嵌入式Linux平台的应用升级机制的研究与设计
- 便利vector_C++面试题之list和vector的区别
- oracle 统计信息字典表,Oracle数据字典表查询
- MySQL面试题 | 附答案解析(一)
- opencv数字图像处理(图像边缘)
- Open3D KdTree建立、3种近邻搜索及结果可视化
- C++:随笔5---this指针和类的继承