美文网首页
力扣leetcode185-部门工资前三高的所有员工(MySQL

力扣leetcode185-部门工资前三高的所有员工(MySQL

作者: 天呐明 | 来源:发表于2020-05-04 22:07 被阅读0次

网上找解题方法,这篇比较适合我这种初学者,搬来跟大家分享。看懂后感受到了SQL的强大。

3点理解难点总结:

1、解题思路:本题要筛选各部门第3高工资(当大于该工资值的工资数为2)+第2高工资(当大于该工资值的工资数为1)+第1高工资(当大于该工资值的工资数为0),即满足大于某工资值的工资数小于3即可。

2、e1表要当做已知值来看待,每个值需要e2salary遍历一遍去比较。

3、e1.apartmentid=er.apartmentid可以将e2锁定在与e1相同的apartmentid里去比较。

链接在此,大家可以自己跑一下试试。

https://www.cnblogs.com/an5456/p/10478949.html

附上自己愚蠢的错误方法,能跑通,但是要手动输入部门名称。

select employee.name 姓名, department.name AS 部门, salary

from employee,department

where employee.departmentid=department.id

and department.name='IT'

and salary >=(

select MIN(salary) from employee,department

where employee.departmentid=department.id and department.name='IT' order by salary desc limit  0,3)

UNION

select employee.name as 姓名, department.name AS 部门, salary from employee,department

where employee.departmentid=department.id

and department.name='SALES'

and salary >=(

select MIN(salary) from employee,department

where employee.departmentid=department.id and department.name='SALES' order by salary desc limit  0,3);

相关文章

网友评论

      本文标题:力扣leetcode185-部门工资前三高的所有员工(MySQL

      本文链接:https://www.haomeiwen.com/subject/ajsughtx.html