题解 | #试卷发布当天作答人数和平均分#

试卷发布当天作答人数和平均分

https://www.nowcoder.com/practice/5b58e89556dc4153a79d8cf8c08ba499

# 每张SQL类别试卷发布后,当天5级以上的用户作答的人数uv和平均分avg_score
select 
    exam_id 
    ,count(distinct uid) uv
    ,round(avg(score),1) avg_score
from (
    select 
        t1.exam_id
        ,t1.uid
        ,t1.score
        # ,row_number() over(partition by uid order by submit_time) ranking
    from exam_record t1 
    inner join examination_info t2 
    on t1.exam_id = t2.exam_id
    inner join user_info t3
    on t1.uid = t3.uid 
    where t2.tag = 'SQL'
    and t3.level > 5
) a 
# where ranking = 1
group by exam_id
order by count(distinct uid) desc ,round(avg(score),1)

补充一下题目没有表述完全的要求:1.平均分取1位小数 2.如果一个人完成了SQL测试两次,那么uv算1,但两次结果都参与平均分计算(如果题目变为不需要参与计算,那么使用我注释掉的窗口函数即可)

全部评论

相关推荐

11-03 14:38
重庆大学 Java
AAA求offer教程:我手都抬起来了又揣裤兜了
点赞 评论 收藏
分享
11-15 17:19
湖南大学 Java
成果成果成果果:这是哪个公司的hr,这么离谱吗,我没见过用性别卡技术岗的,身边女性同学拿大厂offer的比比皆是
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务