题解 | #0级用户高难度试卷的平均用时和平均得分#

0级用户高难度试卷的平均用时和平均得分

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

select t1.uid,
round(sum(score)/count(*)) as avg_score,
round(sum(if(submit_time is not null,timestampdiff(minute,start_time,submit_time),t2.duration))/count(*),1) as avg_time_took
from exam_record t1
join examination_info t2 on t1.exam_id=t2.exam_id
where t2.difficulty = "hard" and t1.uid in (
    select uid from user_info where level=0
)
group by t1.uid

思路:首先想到的是三表连接,但是到这道题的时候,还没用过三表连接,所以就想先从一张表中提取出想要的信息,然后另外两张表连接.

问题:输出每个0级用户所有的高难度试卷考试平均用时和平均得分,未完成的默认试卷最大考试时长和0分处理。

分析:

  • "输出每个0级用户..",这一部分表示对于用户表,我们只需要筛选出0级用户的uid,那么连接剩下的两张表即可.
  • "未完成的默认试卷最大考试时长和0分处理",这个需要用到if(cod,res1,res2),
全部评论

相关推荐

头像
11-09 12:17
清华大学 C++
out11Man:小丑罢了,不用理会
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务