select university,
    round(count(q.question_id) / count(distinct q.device_id),4) as avg_answer_cnt
from user_profile u
right join question_practice_detail q
on u.device_id = q.device_id
group by university
order by university;

问题分解:

  • 限定条件:无;
  • 每个学校:按学校分组,group by university
  • 平均答题数量:在每个学校的分组内,用总答题数量除以总人数即可得到平均答题数量count(question_id) / count(distinct device_id)
  • 表连接:学校和答题信息在不同的表,需要做连接,根据题目需要主表要使用qpd,否则会出现有学校但是值为null