242,987
社区成员
发帖
与我相关
我的任务
分享
# 思路一:
# 1.将员工表二号部门表进行关联
# 2.使用开窗函数进行排序,考虑存在最高薪资相同的人,所以使用DENSE_RENK()然后根据部门分区,薪资倒序排序
# 3.子查询取排名为一即为结果部门最高薪资的员工
#4.题目没有要求排序,所以不加了
SELECT t.Department,t.Employee,t.Salary
FROM (
SELECT
d.Name AS 'Department',
e.Name AS 'Employee',
e.Salary,
DENSE_RANK() OVER(PARTITION BY e.DepartmentId ORDER BY e.Salary DESC) cnt
FROM Employee e JOIN Department d ON e.DepartmentId = d.Id
) t
WHERE t.cnt = 1
# 思路二:若不存在部门最高薪资重复可以使用ORDER BY 和LIMIT连用
# 思路三:Employee分组取出最高薪资和部门id,然后和Employee
通过部门id和薪资关联,再和Department关联得出结果即可
就写这么多吧,不在各位大佬面前丢人了