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

考试分数(五)

https://www.nowcoder.com/practice/b626ff9e2ad04789954c2132c74c0513

select t1.id,t1.job,t1.score,t1.rk from (select id,job,score,row_number() over (partition by job order by score desc) rk from grade ) t1
inner join
(select job
     , ceil(count(score)/2) as start
     , if(count(score)%2=0,ceil(count(score)/2)+1,ceil(count(score)/2)) as end
   from grade 
   group by job)  t2
on t1.job=t2.job 
where t1.rk=t2.start or t1.rk=t2.end
order by id


对表进行排名(select id,job,score

,(row_number()over(partition by job order by score desc))as s_rank

from grade)t1

与select job

     , ceil(count(score)/2) as start

     , if(count(score)%2=0,ceil(count(score)/2)+1,ceil(count(score)/2)) as end

   from grade

   group by job 进行内连接

再进行筛选排名与start或end相同时即是所需数据

全部评论

相关推荐

脾气小祖宗:这简历摸到都得狠狠地消毒液洗手😂
点赞 评论 收藏
分享
轻絵梨花泪沾衣:南泵,大少爷驾到通通闪开
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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