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

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

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

主要思路

  1. 使用内连接,可以用where语句或者inner join
  2. 注意where语句要先筛选‘山东大学’
  3. 注意 表格列名含义device_id指学生的ID,question_id是题目的ID
    注意要和题目里的answer_cnt的区别
SELECT u.university,qd.difficult_level,
count(qp.question_id) / count(distinct qp.device_id) as avg_as
FROM user_profile u,question_practice_detail qp , question_detail qd
WHERE u.device_id=qp.device_id
AND qp.question_id=qd.question_id
AND u.university='山东大学'
GROUP BY u.university,qd.difficult_level;
SELECT    university,d.difficult_level,
    count( q.question_id )/count(DISTINCT q.device_id) avg_ans_cnt
FROM    user_profile u
    INNER JOIN question_practice_detail qp 
            ON u.device_id = qp.device_id
    INNER JOIN question_detail qd 
            ON qd.question_id = qp.question_id 
WHERE    u.university = '山东大学' 
GROUP BY  qd.difficult_level;
全部评论
第2个解答,应该是:from qp inner join u on qp.device_id=u.device_id inner join qd on qp.question_id=qd.quesiton_id
1 回复 分享
发布于 2022-04-06 11:50
为什么你的sql关键字有高亮显示,请问是怎么调的.我在代码块中设置了是SQL格式了
点赞 回复 分享
发布于 2022-06-09 01:31
大佬你好,为什么university 不分组,不是违反了非聚合列必须出现在 group by 后吗
点赞 回复 分享
发布于 2023-10-26 10:51 陕西

相关推荐

不愿透露姓名的神秘牛友
11-26 15:46
已编辑
字节国际 电商后端 24k-35k
点赞 评论 收藏
分享
11-09 17:30
门头沟学院 Java
TYUT太摆金星:我也是,好几个华为的社招找我了
点赞 评论 收藏
分享
评论
13
5
分享
牛客网
牛客企业服务