题解

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

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

# 子查询排序limit取第二id

# select s.emp_no, salary, last_name, first_name

# from employees e, salaries s

# where salary = (

# select salary

# from salaries

# group by salary

# order by salary desc

# limit 1 offset 1

# ) and e.emo_no = s.emp_no;

# 同上

# SELECT s.emp_no, s.salary, e.last_name, e.first_name

# FROM emp_no e

# JOIN salaries s ON e.emp_no = s.emp_no

# WHERE s.salary = (

# SELECT salary

# FROM salaries

# GROUP BY salary

# ORDER BY salary DESC

# LIMIT 1 OFFSET 1

# );

# 子查询排除最大值再取最大值id

select s.emp_no, salary, last_name, first_name

from employees e, salaries s

where salary = (

select max(salary)

from salaries

where salary <> (

select max(salary)

from salaries

)

) and e.emp_no = s.emp_no;

# 子查询小于最大值再取最大值

# select s.emp_no, salary, last_name, first_name

# from employees e, salaries s

# where salary = (

# select max(salary)

# from salaries

# where salary < (

# select max(salary)

# from salaries

# )

# ) and e.emp_no = s.emp_no;

# 子查询,salaries表自连接查询,取满足条件的记录

# 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 s1.salary

# from salaries s1 join salaries s2

# on s1.salary <= s2.salary

# group by s1.salary

# having count(distinct s2.salary) = 2

# );

全部评论

相关推荐

spiritecs:没实习非985211硕很难很难,只能说祝早日成功
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务