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

分组过滤练习题

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

题意解读

题目:现在运营想查看每个学校用户的平均发贴和回帖情况,寻找低活跃度学校进行重点运营,请取出平均发贴数低于5的学校或平均回帖数小于20的学校


每个学校:即学校只出现一次,依据学校进行分组,group by university

平均发帖数<5:使用求平均值函数avgavg(question_cnt) < 5

平均回帖数<20:同样使用平均值函数,avg(answer_cnt) < 20

细节问题


  1. 保留3为小数,使用 round 函数。格式为:round(字段名,保留的小数位)
  2. 聚合函数的条件过滤,只能使用 having,不能使用 where 。即 where只能对表中原有的字段进行过滤,通过函数新计算出的被做为条件过滤时,必须使用having

完整SQL


SELECT
	university,
	round( avg( question_cnt ), 3 ) AS avg_question_cnt,
	round( avg( answer_cnt ), 3 ) AS avg_answer_cnt 
FROM
	user_profile 
GROUP BY
	university 
HAVING
	avg_question_cnt < 5 
	OR avg_answer_cnt < 20
全部评论
按理说先执行having再执行select,那为什么having后面写的条件语句用的是select后面起的别名呢?
1 回复 分享
发布于 2023-03-03 18:57 北京

相关推荐

05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-27 20:15
点赞 评论 收藏
分享
评论
6
1
分享

创作者周榜

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