题意解读
题目:现在运营想查看每个学校用户的平均发贴和回帖情况,寻找低活跃度学校进行重点运营,请取出平均发贴数低于5的学校或平均回帖数小于20的学校
每个学校:即学校只出现一次,依据学校进行分组,group by university
平均发帖数<5:使用求平均值函数avg
,avg(question_cnt) < 5
平均回帖数<20:同样使用平均值函数,avg(answer_cnt) < 20
细节问题
- 保留3为小数,使用
round
函数。格式为:round(字段名,保留的小数位) - 聚合函数的条件过滤,只能使用
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