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;

 

posted @ 2018-08-17 14:56  huanggy  阅读(445)  评论(0编辑  收藏  举报