欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

oracle ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2)

程序员文章站 2022-03-28 19:14:20
工作中遇到的一个问题,需要对某列进行分组排序,取其中排序的第一条数据项 用到了ROW_NUMBER() OVER(PARTITION BY COL1 ORDER BY COL2)来解决此问题。 实例准备: 进行查询操作: 执行结果: 从上面的结果可以看出来是对部门进行分组,按照薪水来进行排序,之后的 ......

工作中遇到的一个问题,需要对某列进行分组排序,取其中排序的第一条数据项

用到了row_number() over(partition by col1 order by col2)来解决此问题。

实例准备:

create or replace table employee (
  empid int,
  deptid int,
  salary decimal(10,2)        
);

insert into employee values(1,10,234.00);
insert into employee values(2,10,1233.00);
insert into employee values(3,20,600.00);
insert into employee values(4,20,4512.00);
insert into employee values(5,30,3424.00);
insert into employee values(6,30,1232.00);
insert into employee values(7,40,4445.00);
insert into employee values(8,40,9999.00);
insert into employee values(9,40,212000.00);

进行查询操作:

select deptid
       ,salary
       ,row_number() over(partition by deptid order by salary desc) as rn
  from employee;

执行结果:

oracle ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2)

从上面的结果可以看出来是对部门进行分组,按照薪水来进行排序,之后的处理可以根据自己的需求来进行处理就ok了!