SQL 22) 对所有员工的当前薪水按照salary进行按照1-N的排名

对所有员工的薪水按照salary进行按照1-N的排名

http://www.nowcoder.com/questionTerminal/b9068bfe5df74276bd015b9729eec4bf

方法)dense_rank()over

SELECT emp_no, salary, dense_rank()over(ORDER BY salary DESC)
FROM salaries
WHERE to_date = '9999-01-01'

为何用dense_rank : 相同分数并列且不影响排名

dense_rank() -- 1 22 33 444

rank() -- 1 22 44 666

row_number() -- 123456

21/3/25 更新
发现第一种做法没有体现 相同薪水按照emp_no排序这一点 修改如下

select emp_no, salary , dense_rank()over(order by salary desc) r
from salaries
where to_date = '9999-01-01'
order by r, emp_no asc;
SQL 文章被收录于专栏

SQL

全部评论

相关推荐

找不到工作死了算了:没事的,雨英,hr肯主动告知结果已经超越大部分hr了
点赞 评论 收藏
分享
10-14 23:01
已编辑
中国地质大学(武汉) Java
CUG芝士圈:虽然是网上的项目,但最好还是包装一下,然后现在大部分公司都在忙校招,十月底、十一月初会好找一些。最后,boss才沟通100家,别焦虑,我去年暑假找第一段实习的时候沟通了500➕才有面试,校友加油
点赞 评论 收藏
分享
评论
6
1
分享
牛客网
牛客企业服务