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

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

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

两种方法:

1、不借助窗口函数,直接用多表连接

select distinct
	# 为了过题目才加max,实际输出全部最高的部门最高薪员工才合理
    t1.dept_no, max(t3.emp_no), t2.maxSalary
from
    dept_emp t1
    join (
        select
            d.dept_no AS dept_no,
            max(salary) AS maxSalary
        from
            dept_emp d
            join salaries s on d.emp_no = s.emp_no
        group by
            d.dept_no
    ) t2 on t2.dept_no = t1.dept_no
    join salaries t3 on t2.maxSalary = t3.salary
# 为了过题目才加group by
group by  t1.dept_no, t2.maxSalary
order by t1.dept_no

2、窗口函数(每组内top)

select
    dept_no,
    emp_no,
    salary
from
    (
        select
            rank() over (
                partition by
                    dept_no
                order by
                    salary DESC
            ) AS rk,
            dept_no,
            emp_no,
            salary
        from
            (
                # 先拼出一张大表,包括部门、员工、工资
                select
                    t1.emp_no,
                    t1.dept_no,
                    t2.salary
                from
                    dept_emp t1
                    join salaries t2 on t1.emp_no = t2.emp_no
            ) tmp
    ) tmpp
where
    tmpp.rk = 1

全部评论

相关推荐

deepseek给的答案,自留一下
野猪不是猪🐗:《产品经理》
投递美团等公司9个岗位 > 美团求职进展汇总
点赞 评论 收藏
分享
神哥不得了:神哥来啦~自我评价和校园经历的话可以直接删了,从大厂暑期的话应该没有什么太多问题,应该是能拿到很多大厂面试机会的,就是在面试的时候表示的好一点就行,可以在面试前先把高频top 50的八股多巩固几遍,千万不要看那些假高频八股,这两个项目的话问题不是很大,应该能够帮你找到大厂实习的,算法的话一定要刷起来,因为大厂有些还是比较看重算法的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务