题解 | #统计每个学校各难度的用户平均刷题数#

统计每个学校各难度的用户平均刷题数

http://www.nowcoder.com/practice/5400df085a034f88b2e17941ab338ee8

select 
    university,                        # 结果第一列
    difficult_level,                   # 结果第二列
    count(qpd.question_id) / count(distinct qpd.device_id) as avg_answer_cnt
from user_profile as up
right join question_practice_detail as qpd            # 先右联结
on up.device_id=qpd.device_id
left join question_detail as qd                       # 这里左右联结都可以
on qpd.question_id=qd.question_id
group by university,difficult_level

这里首先要将三个表给联结起来

  • 第一次联结:因为有用户没有答题,所以实际的答题记录以 question_practice_detail 为准,所以要右联结。
  • 第二次联结:这次是为了展示每个题目的难易程度,所以左右联结都可以。

之后对联结后的表进行 group by 筛选,首先按照学校进行分类,然后对答题的难易程度进行分类。

最后,筛选一下即可。

  • 第一列:university
  • 第二列:diffcult_level
  • 第三列:因为要计算平均值,所以 count(qpd.question_id) 统计总共的答题总数,count(distinct qpd.device_id) 统计答题的人数。
全部评论

相关推荐

牛客840099999号:没见过这样的大厂,至少头部的肯定没有
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务