题解 | #考试分数(五)#

考试分数(五)

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

对分数排序 with a as (select *,row_number() over(partition by job order by score desc ) ranks from grade)

select a.* from a join (select job,case when ranks%2=1 then ceil(ranks/2) 判断数量是否为奇数,为基数可以直接取到中间值 when ranks%2=0 then round(ranks/2,0)为偶数则取中间的的一个数 end ranking from (select job,max(ranks) ranks,0 as rankss from a group by job) x union 将他们拼接 select job,case when ranks%2=1 then ceil(ranks/2) when ranks%2=0 then round(ranks/2+1,0)为偶数则取中间的第二个数 end ranking from (select job,max(ranks) ranks,0 as rankss from a group by job) x) b on a.job=b.job and a.ranks=b.ranking order by a.id

全部评论

相关推荐

07-09 15:55
门头沟学院 Java
点赞 评论 收藏
分享
今天 16:52
已编辑
门头沟学院 Java
周五投的,流程今天结束
投递地平线等公司7个岗位
点赞 评论 收藏
分享
程序员小白条:你是沟通了900个,不是投了900份简历,你能投900份,意味着对面都要回复你900次,你早就找到实习了,没亮点就是这样的,别局限地区,时间投的也要早,现在都要7月了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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