【转载】ROW_NUMBER() OVER函数的基本用法用法 原

木宛城主

xlh           row_num
1700              1
1500              2
1085              3
710                4

row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组，在分组内部根据 COL2排序，而此函数计算的值就表示每组内部排序后的顺序编号（组内连续的唯一的)

create table employee (empid int ,deptid int ,salary decimal(10,2))
insert into employee values(1,10,5500.00)
insert into employee values(2,10,4500.00)
insert into employee values(3,20,1900.00)
insert into employee values(4,20,4800.00)
insert into employee values(5,40,6500.00)
insert into employee values(6,40,14500.00)
insert into employee values(7,40,44500.00)
insert into employee values(8,50,6500.00)
insert into employee values(9,50,7500.00)

empid       deptid      salary
----------- ----------- ---------------------------------------
1           10          5500.00
2           10          4500.00
3           20          1900.00
4           20          4800.00
5           40          6500.00
6           40          14500.00
7           40          44500.00
8           50          6500.00
9           50          7500.00

empid       deptid      salary                                  rank
----------- ----------- --------------------------------------- --------------------
1           10          5500.00                                 1
2           10          4500.00                                 2
4           20          4800.00                                 1
3           20          1900.00                                 2
7           40          44500.00                                1
6           40          14500.00                                2
5           40          6500.00                                 3
9           50          7500.00                                 1
8           50          6500.00                                 2

SQL脚本：

SELECT *, Row_Number() OVER (partition by deptid ORDER BY salary desc) rank FROM employee

木宛城主

ROW_NUMBER() OVER函数的基本用法

2016/10/31
69
0
ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法

ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法 ROW_NUMBER() OVER(partition by col1 order by col2) 表示根据col1分组，在分组内部根据col2排序，而此函数计算的值就表示每组内部排序后的...

mrliuze
2015/07/02
0
0
Hive分析函数row_number()

JackieYeah
2016/05/25
1K
0
MySQL over函数的用法

over不能单独使用，要和分析函数：rank(),denserank(),rownumber()等一起使用。 其参数：over（partition by columnname1 order by columnname2） 含义：按columname1指定的字段进行分组排序...

ChinaUnicom110
2017/08/30
0
0
Oracle11G基本操作

[1].创建表空间 CREATE TABLESPACE SYPRO_201310 DATAFILE 'F:ORACLE_11GoradataorclSYPRO_201310.DBF' SIZE 10M AUTOEXTEND ON 在指定的F盘下创建一个名SYPRO_201310.DBF的文件初始空间是1......

liu13430
2016/03/11
14
0

7分钟前
0
0

Jason909
15分钟前
0
0
day177-2018-12-14-英语流利阅读-待学习

41分钟前
7
0
java 合成两张图片或图片与二维码

java中偶尔会出现需要将一张小图片嵌入大图中或带二维码的海报图片，那么本文就是奔着这个目的来的，直接上腊肉！ zxing是生成1D和2D条形或二维码的工具类库，java图形库Graphics2D进行图片的...

46分钟前
4
0
80后阿里P10，“关老板”如何带着MaxCompute一路升级？

3
0