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

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

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) 统计答题的人数。
全部评论

相关推荐

如题,这操作。。。。
真烦好烦真烦:既想享受国家的招聘应届生福利,又不想培养新人,我只能说这种企业的ld太过分了
投递美的集团等公司6个岗位 >
点赞 评论 收藏
分享
Beeee0927:正确的建议
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务