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

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

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
大佬你好,为什么university 不分组,不是违反了非聚合列必须出现在 group by 后吗
点赞 回复 分享
发布于 2023-10-26 10:51 陕西
为什么你的sql关键字有高亮显示,请问是怎么调的.我在代码块中设置了是SQL格式了
点赞 回复 分享
发布于 2022-06-09 01:31

相关推荐

评论
14
5
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务