题解 | #分组过滤练习题#

分组过滤练习题

https://www.nowcoder.com/practice/ddbcedcd9600403296038ee44a172f2d

现在运营想要对每个学校不同性别的用户活跃情况和发帖数量进行分析,请分别计算出每个学校每种性别的用户数、30天内平均活跃天数和平均发帖数量。
取字段,学校,发帖,回帖
语句顺序:select···from···where···group by···having···order by···limit···(#顺序不能颠倒,否则执行错误)
执行顺序:先找到表,对学校进行分组,进行平均发帖和回帖进行过滤,在查询字段平均发帖低于5的学校或回帖小于20的学校。
#思考:这里为啥不能用where过滤,用having过滤,因为where后面不能跟分组函数,分组函数:count、sum、avg、max、min
#为啥select后面可以写分组函数,其实这里已经分组完成了,所以执行语句不会出现错误。
select 
    university,
    round(avg(active_days_within_30),3) as avg_question_cnt
    round(avg(answer_cnt),3) as avg_answer_cnt 
from
    user_profile
group by
    university
having
    avg(avg_question_cnt) < 5
    avg(avg_answer_cnt) < 20;

全部评论

相关推荐

03-03 19:02
已编辑
东华理工大学 Node.js
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务