题解 | #统计复旦用户8月练题情况#

统计复旦用户8月练题情况

http://www.nowcoder.com/practice/53235096538a456b9220fce120c062b3

题意解读

现在运营想要了解复旦大学的每个用户在8月份练习的总题目数和回答正确的题目数情况,请取出相应明细数据,对于在8月份没有练习过的用户,答题数结果返回0

  • 复旦大学:university = '复旦大学',根据学校进行过滤
  • 每个用户:group by device_id,根据用户进行分组
  • 8月份:month(date) = '08',使用月份函数匹配月份
  • 总题目数:使用 count(question_id) 函数进行统计
  • 没有答题的用户,默认值为0

细节注意

  1. 没有练习过的用户,即在 question_practice_detail 表中无数据,而在 user_profile 表中有数据,因此以 user_profile 为主表,对应使用 left join 或者 right join
  2. 对答题的结果进行判断,如果为 right,则结果为1,否则,为0,进行求和计算

完整SQL

SELECT 
	t1.device_id,
	university,count(t2.question_id) as question_cnt,
	sum(if(t2.result = 'right',1,0)) as right_question_cnt
FROM
	user_profile t1
	left join question_practice_detail t2 on t1.device_id = t2.device_id and month(t2.date) = '08'
WHERE
	t1.university = '复旦大学' 
GROUP BY t1.device_id

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-02 17:58
点赞 评论 收藏
分享
湫湫湫不会java:1.在校经历全删了2.。这些荣誉其实也没啥用只能说,要的是好的开发者不是好好学生3.项目五六点就行了,一个亮点一俩行,xxx技术解决,xxx问题带来xxx提升。第一页学历不行,然后啥有价值的信息也没有,到第二页看到项目了,第一个项目九点,第二个项目像凑数的俩点。总体给人又臭又长,一起加油吧兄弟
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-01 12:22
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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