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

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

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


WITH  b AS (
    SELECT MAX(salary) bq
    FROM salaries s,  (SELECT MAX(salary) AS aq
           FROM salaries)a
    WHERE s.salary != aq)

SELECT e.emp_no, salary, last_name, first_name
FROM employees e
         LEFT JOIN salaries s ON s.emp_no = e.emp_no,b
WHERE salary = b.bq;
我觉得这个题目有更简单的方法,我还没想到,
目前的方式就是首先查询一下薪水最多的,使用max函数,这个的方式好处就是防止有薪水一样的情况
然后再次查询新水表,反选刚刚查出的最高薪资,薪水最高的就不在表中了,在max一下薪水就是除去最高薪的第二高薪

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务