你那不叫重复,用rank的时候工资一样的话,会并列第一。用row_number select * from (select row_number() over(partition by deptno order by sal desc) rk, emp.* from scott.emp) where rk <= 3;这样就可以解决。