17

获取当前薪水第二多的员工的emp_no以及其对应的薪水salary

http://www.nowcoder.com/questionTerminal/8d2c290cc4e24403b98ca82ce45d04db

题目:获取当前(to_date=‘9999-01-01’)薪水第二多的员工的emp_no以及其对应的薪水salary

子查询+DISTINCT
SELECT emp_no, salary
FROM salaries
WHERE to_date = '9999-01-01'
AND salary = (SELECT DISTINCT salary FROM salaries ORDER BY salary desc limit 1 offset 1);

子查询+GROUP BY
SELECT emp_no, salary
FROM salaries
WHERE to_date = '9999-01-01'
AND salary = (SELECT salary FROM salaries GROUP BY salary ORDER BY salary desc limit 1 offset 1);

全部评论
请问,如果子查询里面查出来的排在第二位的工资恰好不是to_date=‘9999-01-01’,那这样写的话,是不是就最后是null了?
1 回复 分享
发布于 2020-08-19 13:57
请问 SELECT emp_no,salary FROM salaries WHERE to_date = '9999-01-01' GROUP BY salary ORDER BY salary DESC LIMIT 1,1;请问为什么不直接这样呢? 为什么要多写一层子查询吗?有什么说法吗?谢谢!
点赞 回复 分享
发布于 2020-08-07 03:28

相关推荐

评论
18
2
分享

创作者周榜

更多
牛客网
牛客企业服务