题解 | SQL 入门 19 #分组过滤练习题#
分组过滤练习题
http://www.nowcoder.com/practice/ddbcedcd9600403296038ee44a172f2d
知识
使用HAVING
HAVING子句用于对分组后的结果再进行过滤,
它的功能有点像WHERE子句,但它用于组而不是单个记录。
在HAVING子句中可以使用统计函数,但在WHERE子句中则不能。
HAVING通常与GROUP BY子句一起使用。
例36.查询学生表中人数大于等于3的班号和人数。
SELECT 班号, COUNT(*) 人数 FROM 学生表 GROUP BY 班号 HAVING COUNT(*) >= 3
例37.查询平均成绩大于等于80的学生的学号、选课门数和平均成绩。
SELECT 学号, COUNT(*) 选课门数, AVG(成绩) 平均成绩 FROM 成绩表 GROUP BY 学号 HAVING AVG(成绩) >= 80
题解
题目:现在运营想查看每个学校用户的平均发贴和回帖情况,寻找低活跃度学校进行重点运营,请取出平均发贴数低于5的学校或平均回帖数小于20的学校。
SELECT university,AVG(question_cnt)avg_quesition_cnt,AVG(answer_cnt)avg_answer_cnt FROM user_profile GROUP BY university HAVING avg_quesition_cnt < 5 OR avg_answer_cnt < 20
示例:user_profile
根据示例,你的查询应返回以下结果:
【题解】SQL 入门 文章被收录于专栏
SQL 入门 题解