题解 | #获取当前薪水第二多的员工#

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

https://www.nowcoder.com/practice/c1472daba75d4635b7f8540b837cc719

重复是根本
(这道题不让使用ORDER BY,不然就很简单了)
不用ORDER BY,因此我的想法是先排除掉最大值,然后再从剩下的值里面找到最大值,则该最大值就是第二大值
SELECT employees.emp_no,salary,last_name,first_name
FROM employees JOIN salaries ON salaries.emp_no = employees.emp_no
WHERE salary = (
    SELECT MAX(salary)
    FROM (
        SELECT emp_no,salary
        FROM salaries
        WHERE salary - (SELECT MAX(salary) FROM salaries) != 0
    ) salary_cha
)

ORDER BY做法:
SELECT employees.emp_no,salary,last_name,first_name
FROM employees JOIN salaries ON salaries.emp_no = employees.emp_no
WHERE salary = (
   SELECT salary
   FROM salaries
    ORDER BY salary DESC   LIMIT 1,1  )
#     SELECT salary #     FROM salaries #     ORDER BY salary DESC #     LIMIT 1,1   

#MySQL#
全部评论

相关推荐

04-30 21:35
已编辑
长安大学 C++
晓沐咕咕咕:评论区没被女朋友好好对待过的计小将可真多。觉得可惜可以理解,毕竟一线大厂sp。但是骂楼主糊涂的大可不必,说什么会被社会毒打更是丢人。女朋友体制内生活有保障,读研女朋友还供着,都准备订婚了人家两情相悦,二线本地以后两口子日子美滋滋,哪轮到你一个一线城市房子都买不起的996清高计小将在这说人家傻😅
点赞 评论 收藏
分享
05-12 11:09
已编辑
门头沟学院 后端
SmileDog12138:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务