select up.device_id, up.university, count(qpd.question_id) as question_cnt, sum(case when qpd.result = "right" then 1 else 0 end) as right_question_cntfrom user_profile as upleft join question_practice_detail qpd on up.device_id = qpd.device_id and qpd.date >= "2021-08-01" and qpd.date <= "2021-08-31"where university = "复旦大学"group by up.device_id, up.universityorder by up.device_id
1.2 SQL38
select qd.difficult_level, round(avg(if(qpd.result = "right", 1, 0)), 4) as correct_ratefrom user_profile as upinner join question_practice_detail as qpd on up.device_id = qpd.device_idinner join question_detail as qd on qpd.question_id = qd.question_idwhere up.university = "浙江大学"group by qd.difficult_levelorder by correct_rate asc
1.3 SQL39
select count(distinct device_id) as did_cnt, count(question_id) as question_cntfrom question_practice_detail as qpdwhere month(qpd.date) = 8 and year(qpd.date) = 2021