Mysql 分组
默认显示第一条,单独使用意义并不大
1,分组查询全部数据
SELECT 后面的字段一般 GROUP BY 后面也会出现,分组展示数据(会展示所有数据,而不是默认第一条)
# 按性别分组展示学生姓名 SELECT name,gender from students GROUP BY gender,name
2,GROUP BY + GROUP_CONCAT()
GROUP_CONCAT(字段名)将作为输出字段,可以指定别名,值是每一组的某字段值的集合,用逗号隔开(有几个组就展示几条数据)
# 按性别展示所有学生姓名 SELECT gender,GROUP_CONCAT(name) AS stu_name from students GROUP BY gender
3,GROUP BY + 聚合函数
和 GROUP BY + GROUP_CONCAT() 类似
# 按性别展示学生分数总和和姓名 SELECT gender,GROUP_CONCAT(name) AS stu_name,SUM(score) AS stu_score_total from students GROUP BY gender
4,HACING
效果和 WHERE 基本一样,HAVING 只能用在分组之后,WHERE 只能用在分组之前;HAVING 后面可以使用聚合函数,WHERE 不可以
# 按部门性别展示学生分数总和,求出总分数大于 200 的性别 SELECT gender, SUM(score) FROM students GROUP BY gender HAVING SUM(score) > 200;