题解 | #考试分数(五)#查询每组中位数位置上的记录

考试分数(五)

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

/* 1、
with t as(
    select *,
        row_number() over(partition by job order by score desc) t_rank
    from grade
),
t2 as(
    select job,
        floor((max(t_rank)+1)/2) start,
        floor((max(t_rank)+2)/2) end
    from t
    group by job
)

select id,job,score,t_rank
from t
left join t2 using(job)
where t_rank=start or t_rank=end
order by id

2、 */
select id,
    job,
    score,
    t_rank
from(
    select *,
        row_number() over(partition by job order by score desc) t_rank,
        count(score) over(partition by job) num
    from grade
) t
where abs(t_rank-(num+1)/2)<1
order by id



全部评论

相关推荐

码农索隆:单休一个月少休息4天,一年就是48天,平时节假日,别人3天假期,单休的两天
点赞 评论 收藏
分享
头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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