题解 | #获取每个部门中当前员工薪水最高的相关信息#

获取每个部门中当前员工薪水最高的相关信息

http://www.nowcoder.com/practice/4a052e3e1df5435880d4353eb18a91c6

这样写不知道 同一部门最大的薪水对应的是哪一个员工

SELECT t.dept_no,t.emp_no,MAX(t.salary)
FROM
(SELECT d.dept_no,s.emp_no,s.salary
FROM dept_emp d
LEFT JOIN salaries s
ON d.emp_no = s.emp_no) t
GROUP BY t.dept_no

正确的写法

SELECT dept_no,emp_no,salary
FROM
(SELECT d.dept_no,s.emp_no,s.salary
# 对每个部门的薪水做一个排序,找出排名第一的那个就是薪水最高的员工
,dense_rank() over(PARTITION BY d.dept_no ORDER BY s.salary DESC) AS ranking
FROM dept_emp d
LEFT JOIN salaries s
ON d.emp_no = s.emp_no
) t
WHERE ranking = 1
ORDER BY dept_no

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务