Rank() over()的用法
来源:互联网 发布:大数据修炼系统 顶点 编辑:程序博客网 时间:2024/05/17 01:57
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 是在每个分组内部进行排名的。
- Rank() over()的用法
- Rank() over()的用法
- Rank() over()的用法
- rank() over()的用法
- Rank() over()的用法
- Rank() over()的用法
- Rank() over的用法
- ROW_NUMBER() OVER函数的基本用法 / Rank() over()的用法
- Oracle 中rank() over()的用法
- SQL的RANK()OVER 划分等级的用法
- 又学了一招“rank over”的用法
- rank() over(order by 列名)的用法
- oracle 聚合函數 及 rank over的用法
- SQL中ROW_NUMBER()/RANK() /DENSE_RANK() OVER函数的基本用法
- rank() over(partition)的使用
- rank() over(partition)的使用
- row_number() 、dense_rank() 、rank() 、Over、Pivot用法说明
- row_number(),dense_rank(),rank(),Over,Pivot用法说明
- 一条统计代码慢查询了
- iOS 纯代码适配iPhone6,6+
- android textview xml 属性设置
- HTML中加入在Eclipse中写的java程序
- SQL Server安装
- Rank() over()的用法
- java操作mongodb(聚合函数)
- apt-get 命令原理
- cocos2d 制作光晕特效
- 第十七周项目四 两人生日差几天
- 认识romfs文件系统
- Unity检测鼠标碰撞或手指触摸
- [Swift]@UIApplicationMain
- C语言简单处理报文中固定格式、固定分隔符的字符串