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

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

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

SELECT
    up.university,
    qd.difficult_level,
    count(qpd.device_id) / count(distinct qpd.device_id) as avg_answer_cnt
FROM
    question_practice_detail qpd
    JOIN user_profile up ON qpd.device_id = up.device_id
    JOIN question_detail qd ON qpd.question_id = qd.question_id
GROUP BY
    up.university,
    qd.difficult_level
HAVING
    up.university = '山东大学'

题目:参加了答题的山东大学的用户在不同难度下的平均答题题目数

思路:

  1. 涉及哪些表?用户、答题信息、题目信息
  2. 用join。。on。。join。。on把各表关联起来,注意题目要求“参加了答题”的
  3. “不同难度下”,用到分组group by
  4. 分组计算“平均答题题目数”,总答题数目 / 答题人数
  5. 只看“山东大学”,用到分组过滤,在group by 之后用having
  6. 注意分组过滤中的字段university,也要写在group by里面
全部评论

相关推荐

美丽的查理斯不讲武德:包kpi的啊,感觉虾皮一点hc都没有
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务