【每日SQL打卡】184. 部门工资最高的员工

赖瓜子_乐 华贵铂金 2021-11-08 09:07:36
加精

# 思路一:

# 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关联得出结果即可

就写这么多吧,不在各位大佬面前丢人了

...全文
152 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

242,987

社区成员

发帖
与我相关
我的任务
社区描述
社区愿景:互相帮助,一起进步,升职加薪,迎娶白富美
大数据 企业社区 北京·朝阳区
社区管理员
  • 不吃西红柿丶
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

交流分享技术知识、咨询或解答技术难题

既学技术,又交朋友:https://app.yinxiang.com/fx/13ce6bbd-f36f-4e92-be53-92dd381ed729

试试用AI创作助手写篇文章吧