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

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

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

select up.device_id,university,sum(if (question_id > 1,1,0)) as question_cnt,sum(if(result='right',1,0)) as right_question_cnt from user_profile as up
left join
( select device_id,question_id,result 
from question_practice_detail
where month(date)='08') as qpd 
on qpd.device_id = up.device_id
where university = '复旦大学'
group by up.device_id

写的有点复杂,

主要就是先对回答问题的表进行处理,获得8月份答题数据,

之后通过左连接与学生信息表进行结合,

最后查看到底需要那列的数据,再对列进行处理。

使用if语句可以很好的处理None数据,即没有作答过的数据

全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务