微前端架构如何改变企业的开发模式与效率提升
706
2022-10-15
LeetCode刷题之旅【数据库篇】简单 - 3:第二高的薪水
2019年11月15日
目录
题目
解题1
解题2
解题3
题目
解题1
查找中间表数据,然后排序中间表数据,从第2个数据开始取,偏移量为1
# Write your MySQL query statement belowSELECT ( SELECT DISTINCT Salary FROM Employee ORDER BY Salary DESC LIMIT 1 OFFSET 1) as SecondHighestSalary;
解题2
select max(Salary) SecondHighestSalaryfrom Employeewhere Salary <> (select max(Salary) from Employee );
使用max的聚合函数子查询会产生两次IO, 数据量大时很慢吧?
解题3
首先回顾一下MySQL的isfull 与limit的用法
ifnull(value1,value2)
1、如果value1不为空,结果返回value1。 2、如果value1为空,结果返回value2。同上
Limit x 返回多少条数据 limit x,y 从第X+1条开始,返回y条。然后对数据进行去重,用distinct,再对去重后的数据进行降序排序,用limit 1,1 即从第二条开始,取一条数据,也就取到了第二高的薪水。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~