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

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

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

SELECT
    up.university,
    qd.difficult_level,
    COUNT(qpd.question_id) / COUNT(DISTINCT qpd.device_id) as avg_answer_cnt
FROM
    user_profile up
    RIGHT JOIN question_practice_detail qpd ON up.device_id = qpd.device_id
    JOIN question_detail qd ON qpd.question_id = qd.question_id
group by
    up.university,
    qd.difficult_level

题目:运营想要计算一些参加了答题的不同学校、不同难度的用户平均答题量,请你写SQL取出相应数据。

思路:

  1. 判断涉及哪几张表:user_profile(用户信息)、question_practice_detail(答题信息)、question_detail(题目信息,难度
  2. 用join。。on。。join。。on把几张表关联起来;
  3. “不同学校、不同难度”,可以看出需要 group by;
  4. 再写 “用户平均答题量”的计算公式:总答题量 / 答题人数

题目里面强调“参加了答题”,关联的时候需要注意用left还是right

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务