row_number() over怎么使用

2025-12-17 21:06:37
推荐回答(1个)
回答1:

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