1. 题目
-
题目描述
获取薪水第二多的员工的emp_no以及其对应的薪水salary,
若有多个员工的薪水为第二多的薪水,则将对应的员工的emp_no和salary全部输出,并按emp_no升序排序。 -
表格

-
所需结果

2. 题解
直接使用窗口函数即可。
SELECT t.emp_no, t.salary
FROM (SELECT *,
RANK() OVER(ORDER BY salary DESC) rk
FROM salaries
) t
WHERE t.rk = 2
ORDER BY t.emp_no
另解:使用 LIMIT OFFSET
SELECT emp_no, salary
FROM salaries
WHERE salary = (SELECT DISTINCT salary FROM salaries ORDER BY salary DESC LIMIT 1 OFFSET 1)
该博客探讨了一种使用SQL查询获取薪水第二高的员工信息的方法,包括使用窗口函数和LIMIT OFFSET子句。文章提供了详细的SQL代码示例,并展示了如何从'salaries'表中筛选出符合条件的数据,最后按员工编号排序。
1107

被折叠的 条评论
为什么被折叠?



