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

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

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

按照题目要求的方法一:
select
  s.emp_no,
  s.salary,
  e.last_name,
  e.first_name
from
  salaries s
  join employees e on s.emp_no = e.emp_no
where
  s.salary = 
  (
    select
      max(salary) 
    from
      salaries
    where
      salary < (
        select
          max(salary) 
        from
          salaries
      )
  )
本人没看题目要求的方法二:窗口函数多练练嘿嘿 没看题目要求别喷我
select
  b.emp_no,
  b.salary,
  a.last_name,
  a.first_name
from
  employees a
  right join (
    select
      emp_no,
      ROW_NUMBER() OVER(
        ORDER BY
          salary desc
      ) as pm,
      salary #
    from
      salaries
  ) b on a.emp_no = b.emp_no where b.pm = 2


全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务