SQL练习:SQL23_较难
题目: 对所有员工的当前(to_date=‘9999-01-01’)薪水按照salary进行按照1-N的排名,相同salary并列且按照emp_no升序排列
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));
题解
# 考点:SQL窗口函数中的DENSE_RANK()
SELECT emp_no,salary,DENSE_RANK() OVER(ORDER BY salary DESC) t_rank
FROM salaries
WHERE to_date='9999-01-01'
ORDER BY t_rank ,emp_no;
## 注意排名t_rank是DESC,薪资是ASC
关于本题的窗口函数,或数据库其他知识,可以访问:begtut.com
个人整理的笔记,仅供学习使用,有问题麻烦指正。
题目及解答思路均来源于:牛客网