见鬼他们代码怎么都那么精简
1.题目要求:学生(id),学校(复旦),(做题数量),(正确答题数量)
2.在表2中 通过id分组,通过答题结果统计
3将表2与表1 id拼接 where 限制结果为复旦,通过if(做题数量,处理掉None),将表2复制一份在其结果上限制正确的答题
select user.device_id,university,question_cut,if(rig.question_cnt ,rig.question_cnt,0) from
(select user.device_id,university,if(que.question_cnt ,que.question_cnt,0) as question_cut
from
user_profile as user
left join
(select
device_id ,count(result)as question_cnt
from
question_practice_detail
where
date>"2021-07-31"
group by device_id) as que
on
user.device_id = que.device_id
where user.university ="复旦大学") as user
left join
(select
device_id ,count(result)as question_cnt
from
question_practice_detail
where
date>"2021-07-31" and result="right"
group by device_id) as rig
on
user.device_id = rig.device_id