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

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

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

  1. 从两个salaries里取数;
  2. 给定s1的金额,把s2里大于>=该金额的数提出来,比如s1对应的一行是8000,整个表里只有8000和8100>=8000,那么这个emp_no对应的就是这俩数;
  3. 根据emp_no做group by,得到每个员工对应的金额小于的所有值,然后再计算不重复值,即count(distinct s2.salary);
  4. 最后按金额降序。

代码:

select s1.emp_no, s1.salary, count(distinct s2.salary)
from salaries s1, salaries s2
where s1.salary <= s2.salary
group by s1.emp_no
order by s1.salary desc

全部评论

相关推荐

10-17 12:16
同济大学 Java
7182oat:快快放弃了然后发给我,然后让我也泡他七天最后再拒掉,狠狠羞辱他一把😋
点赞 评论 收藏
分享
11-15 17:19
湖南大学 Java
成果成果成果果:这是哪个公司的hr,这么离谱吗,我没见过用性别卡技术岗的,身边女性同学拿大厂offer的比比皆是
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务