SQL题解 | #统计每个学校的答过题的用户的平均答题数#
统计每个学校的答过题的用户的平均答题数
https://www.nowcoder.com/practice/88aa923a9a674253b861a8fa56bac8e5
select university, round( (count(question_id)/count(distinct B.device_id)) , 4 ) as avg_answer_cnt from user_profile as A inner join question_practice_detail as B on A.device_id = B.device_id group by university order by university asc
个人认为如果把该题之前的题目都吃透的话,还是很常规的。
关键点在于这一句 `round( (count(question_id)/count(distinct B.device_id)) , 4 ) as avg_answer_cnt`
若想获得人数的话,必须写的是 count(distinct B.device_id)
而不是 `count(device_id)` 这里有两个关键点:一个是使用 distinct 对属性进行去重。另一个就是别忘记了A、B表中都有 device_id 字段,因此需要使用 `B.` 进行区分