1.查看每个部门的工资最高的第一名;
select deptno,max(sal)keep(dense_rank first order by sal desc)rank1
from emp t group by deptno;
deptno rank1
10 5000
20 3000
30 2850
2,查看每个部门的员工工资最高的第一名的姓名(ename),empno等其他字段信息呢??,加在group by后面就不是上面语句的答案了;
3 每个部门的员工工资可能有相同的并且是最高的呢?
试试这个:
SELECT deptno,ename,empno
FROM emp
WHERE ROWID IN (
SELECT MAX(ROWID) KEEP(dense_rank first ORDER BY sal desc) OVER(PARTITION BY deptno)
FROM emp
);