row_number() over()分组排序功能,over()里头的分组以及排序的执行晚于 where group by order by 的执行。
举例步骤如下:
1、创建测试表,
create table test_row_num(id varchar2(20),value varchar2(20));
2、插入测试数据;
insert into test_row_num values('1', 'a');
insert into test_row_num values('1', 'b');
insert into test_row_num values('1', 'c');
insert into test_row_num values('2', 'a');
insert into test_row_num values('2', 'b');
commit;
3、查询表中全量数据;select t.*, rowid from test_row_num t;
4、编写语句,使用row_number over()分组函数;
select t.*, row_number() over(partition by id order by value) rn from test_row_num t