知识
对查询结果进行分组计算
作用:可以控制计算的级别:对全表还是对一组。
目的:细化计算函数的作用对象。
分组语句的一般形式:
[GROUP BY ]
[HAVING ]
GROUP BY子句中的分组依据列必须是表中存在的列名,不能使用AS子句指派的结果集列的别名。
带有GROUP BY 子句的SELECT语句的查询列表中只能出现分组依据列或统计函数,因为分组后每个组只返回一行结果。
例34.统计每门课程的选课人数,列出课程号和人数。
SELECT 课程号, COUNT(课程号) AS 选课人数 FROM 成绩表 GROUP BY 课程号
该语句首先对查询结果按课程号的值分组,所有具有相同课程号值的元组归为一组,然后再对每一组使用COUNT函数进行计算,求得每组的学生人数。
例35.查询每名学生的选课门数和平均成绩。
SELECT 学号, COUNT(*) 选课门数, AVG(成绩) 平均成绩 FROM 成绩表 GROUP BY 学号
题解
题目:现在运营想要对每个学校**不同性别的用户活跃情况和发帖数量进**行分析,请分别计算出每个学校每种性别的用户数、30天内平均活跃天数和平均发帖数量。
SELECT gender,university,COUNT(*)user_num,AVG(active_days_within_30)avg_active_days, AVG(question_cnt)avg_quesition_cnt FROM user_profile GROUP BY gender,university
用户信息表:user_profile
30天内活跃天数字段(active_days_within_30)
发帖数量字段(question_cnt)
回答数量字段(answer_cnt)
你的查询返回结果需要对性别和学校分组,示例如下: