ORACLE 中 ROW_NUMBER() OVER() 分组函数用法

ROW_NUMBER() OVER(partition by col1 order by col2) 表示根据col1分组,在分组内部根据col2排序

举个例子:
例如表:student(学生)表,表结构为:

ID       char(6)      --学号
name    VARCHAR2(10)   --姓名
create table student (ID char(6), name VARCHAR2(100));
insert into sale values('200001',‘张一’);
insert into sale values('200001',‘张一’);
insert into sale values('200002',‘王二’);
insert into sale values('200003',‘李三’);
insert into sale values('200004',‘赵四’);
commit;

把相同ID的分组排序,如下

SELECT ROW_NUMBER() OVER(PARTITION BY ID  ORDER BY ID) RN, ID, NAME FROM STUDENT;

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_33269520/article/details/80314196