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

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

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

相关推荐

天降大厂offer:想从事前端就放前端的技术栈,然后项目描述,还有项目做了什么内容,使用了什么技术解决了什么问题优化了什么性能。然后头像可以不要,在读也可以不要,还有bg的话就不要放课程,写哪个学校什么本科,还有绩点排名(如果高的话),然后就是技术栈写好一点,接下来就是项目(有实习就写实习,没有就到项目),项目放两个好一点的,自己包装一下,然后有参加什么竞赛放两个就好了,接下来就是靠你自己了,毕竟211还是很难容易找的,不像我们学院本
点赞 评论 收藏
分享
评论
15
5
分享

创作者周榜

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