题解 | #统计每个用户的平均刷题数#

统计每个用户的平均刷题数

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

select
    university, 
    qd.difficult_level,
    count(qpd.question_id) / count(distinct qpd.device_id) as avg_answer_cnt
    from question_detail qd 
    inner join question_practice_detail qpd on qd.question_id = qpd.question_id
    inner join user_profile up on qpd.device_id = up.device_id
    where up.university = '山东大学'
group by qd.difficult_level

很显然,因为是参加了答题的,即不需要没有答题的人,需要内连接inner join,逻辑线是, qd.question_id = qpd.question_id 到 qpd.device_id = up.device_id即题目id的相同连接两张表,用户id的相同连接另外两张表, 通过这两个逻辑连接起3个表,之后查找到想要的数据,并进行处理,其中 count(qpd.question_id) / count(distinct qpd.device_id) as avg_answer_cnt的去重是必须的,因为是总的做题数/总的人数, 最后告知条件是山东大学的用户

全部评论

相关推荐

03-29 18:59
运城学院 Java
程序员小白条:咱们要对自己的简历和学历有清晰的认知,不要动不动就大厂了....都26届了,没实习还想着大厂,唉
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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