统计每个学校的答过题的用户的平均答题数_牛客题霸_牛客网 (nowcoder.com)
这道题主要就是右连接两个表(假设左表为 user_profile,右表为 question_practice_detail,额好像不用右连接也行。。反正右表的数据必须都要用到,而左表有与右表对应不上的数据)
然后按照university分组,分完组后统计每个大学的题目数和人数,count(question_id)为统计题目数,
count(distinct (question_practice_detail.device_id))为统计人数,这里我们是根据设备号来分人的,所以要先进行去重操作(distinct居然还可以这么用!)
最后求每个学校的答过题的用户的平均答题数就用 题目数/人数得到,这里肯定不能用avg(),avg()函数是用来对某列求平均值的,这里用不了。
select
university,
count(question_id) / count(distinct (question_practice_detail.device_id)) as avg_answer_cnt
from
user_profile
right join question_practice_detail on user_profile.device_id = question_practice_detail.device_id
group by
university;