参考考试分数(四),稍微改动

考试分数(五)

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

  1. 在原表上新添加一列,使用窗口函数排序(观察输出结果,使用逆序desc)

    select *,row_number() over(partition by job order by score desc) as t_rank
    from grade
  2. 参考考试分数(四)的答案,取其中中位数的位置

    select job,round(count(id)/2) as 'start',round((count(id)+1)/2) as 'end'
    from grade 
    group by job 
    order by job
  3. 连接两表,最终结果

    select a.id,a.job,a.score,a.t_rank
    from (
     select *,row_number() over(partition by job order by score desc) as t_rank
     from grade)a
    inner join (
     select job,round(count(id)/2) as 'start',round((count(id)+1)/2) as 'end'
     from grade 
     group by job 
     order by job)b
    on a.job = b.job
    where a.t_rank = b.start
    or a.t_rank = b.end
    order by id
全部评论

相关推荐

今天 12:43
已编辑
门头沟学院 C++
点赞 评论 收藏
分享
10-28 11:04
已编辑
美团_后端实习生(实习员工)
一个2人:我说几个点吧,你的实习经历写的让人觉得毫无含金量,你没有挖掘你需求里的 亮点, 让人觉得你不仅打杂还摆烂。然后你的简历太长了🤣你这个实习经历看完,估计没几个人愿意接着看下去, sdk, 索引这种东西单拎出来说太顶真了兄弟,好好优化下简历吧
点赞 评论 收藏
分享
牛客5655:其他公司的面试(事)吗
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务