题解 | #统计复旦用户8月练题情况#
统计复旦用户8月练题情况
https://www.nowcoder.com/practice/53235096538a456b9220fce120c062b3
select device_id, university, sum(if(result is not null and month(date)=8,1,0)) as question_cnt, sum(if(result='right' and month(date)=8,1,0)) as right_question_cnt from (select u.device_id,u.university,qpd.result,qpd.date from user_profile u left join question_practice_detail qpd on u.device_id = qpd.device_id where u.university='复旦大学') as t group by device_id;
首先,不能把8月没有答题的用户筛选掉,因此要使用左查询,生成的表如下:
其次,按device_id分别统计。其中8月总答题数量:sum(if(result is not null and month(date)=8,1,0))
8月份回答正确的题目数量: sum(if(result='right' and month(date)=8,1,0))