题解 | #获取当前薪水第二多的emp_no及对应的薪水#
获取当前薪水第二多的员工的emp_no以及其对应的薪水salary
https://www.nowcoder.com/practice/8d2c290cc4e24403b98ca82ce45d04db
WITH CS AS(
SELECT * FROM salaries
WHERE to_date = '9999-01-01'
#先过滤出当前的工资记录命名为CS
),RS AS(
SELECT
CS.emp_no,
CS.salary,
DENSE_RANK() OVER(ORDER BY CS.salary DESC) AS R
FROM CS
#针对过滤后的工资记录命名为RS,并用开窗函数排序,DENSE_RANK()不会跳过排序。
)
SELECT
RS.emp_no,
RS.salary
FROM RS
WHERE RS.R = 2
ORDER BY RS.emp_no;
#对排序后的RS工资记录进行筛选,选择排序为2的,并按照员工编号排序
#SQL训练#
查看1道真题和解析