题解 | #对所有员工的薪水按照salary降序进行1-N的排名#

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

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

首先利用窗口函数对薪资进行排序。

# 这里是密集排序,dense_rank()函数,区别于rank() 和 row_number(),不清楚这个知识点可以自己学习一下。

select
  emp_no,
  salary,
  dense_rank() over(order by salary desc) as t_rank
from
  salaries

对上面的排序结果,再进行 t_rank和emp_no升序排序

select
   emp_no,
   salary,
   t_rank
from
  (
   select
    emp_no,
    salary,
    dense_rank() over(order by salary desc) as t_rank
  from
    salaries
   ) aa
order by 
  t_rank asc,
  emp_no asc
全部评论

相关推荐

03-17 23:54
黑龙江大学 Java
来个白菜也好啊qaq:可以的,大厂有的缺打手
点赞 评论 收藏
分享
03-10 10:57
已编辑
门头沟学院 推荐算法
夜夜还好:我们学校说为了学生就业,更新了课程,我今天大二,上学期在学jsp,html,这学期上来工程实践,要求用springboot+vue,说什么这些技术要我们提前自己准备,要不你把学费还我吧,我给b站充个会员,人家教的比你多
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务