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.` 进行区分

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务