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

考试分数(五)

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

题目:

查询各个岗位分数的中位数位置上的所有grade信息,并且按id升序排序

思路:

1、各个岗位:按job分组,各岗位都有自己的排序——窗口函数 row_number()

2、中位数:参照上题,round(cnt/2) or rk=round((1+cnt)/2)

代码:

select id,job,score,rk
from 
    (select id,job,score,
     row_number() over(partition by job order by score desc) as rk,
     count(score) over(partition by job) cnt
    from grade
    )a
#where rk in if(cnt%2=0,cnt/2 or cnt/2+1,(cnt+1)/2)
where rk=round(cnt/2) or rk=round((1+cnt)/2)
order by id

反思:

1、一开始没想到用count,就想着看每个job个数用max(rk),但这样外层循环需要group by,然后就得vid,job,score,rk全放进去,做不出来;

2、判断中位数那里,还想着分cnt奇偶情况,做不出来,还是按照上一道题直接用round了。

全部评论

相关推荐

Twilight_m...:表格简历有点难绷。说说个人看法: 1.个人基本情况里好多无意义信息,什么婚姻状况、健康状况、兴趣爱好、户口所在地、身份证号码、邮政编码,不知道的以为你填什么申请表呢。 2.校内实践个人认为对找工作几乎没帮助,建议换成和测开有关的项目,实在没得写留着也行。 3.工作经历完全看不出来是干什么的,起码看着和计算机没啥关系,建议加强描述,写点你在工作期间的实际产出、解决了什么问题。 4.个人简述大而空,看着像AI生成,感觉问题最大。“Python,C,C++成为我打造高效稳定服务的得力工具”、“我渴望凭借自身技术知识与创新能力,推动人工智能技术的应用发展,助力社会实现智能化转型”有种小学作文的美感。而且你确定你个人简述里写的你都会嘛?你AI这块写的什么“深入研究”,发几篇顶会的硕博生都不一定敢这么写。而且你AI这块的能力和软测也完全无关啊。个人简述建议写你对哪些技术栈、哪些语言、哪些生产工具的掌握,写的有条理些,而且最好是和测开强相关的。
点赞 评论 收藏
分享
zzzzhz:兄弟你先猛猛投简历至少三百家,能约到面试就去面。最近可以速成智能小车,智慧家居烂大街的项目,不需要自己写,只需要把里面的代码讲解看明白就行。把其中涉及到的八股文都拿出来单独背一下,我去年找工作就一个智能小车智慧家居找了10k差不多。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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