1、分组查询介绍

分组查询就是将查询结果按照指定字段进行分组,字段中数据相等的分为一组。

分组查询语法格式:

GROUP BY 列名 [HAVING 条件表达式] [WITH ROLLUP]

说明:

①、列名:是指按照指定字段值进行分组。

②、HAVING:条件表达式,用来过滤分组后的数据。

③、WITH ROLLUP:在所有记录的最后加上一条记录,显示select查询时聚合函数的统计和计算结果。

2、GROUP BY的使用

GROUP BY可用于单个字段分组,也可用作多个字段分组。

例:根据性别字段来分组

SELECT gender FROM `students` GROUP BY `gender` ;

例:根据姓名和性别进行分组

SELECT name,gender FROM `students` GROUP BY name,gender ;

3、GROUP BY+GROUP_CONCAT()

GROUP_CONCAT(字段名):统计每个分组指定字段的信息集合,每个信息之间用逗号进行分割。

例:查询学生表中所有男同学的名字和所有女同学的名字

SELECT gender, GROUP_CONCAT(name) FROM `students` GROUP BY `gender` ;

4、GROUP BY+聚合函数的使用

例:统计学生表里所有男生人数与女生人数

SELECT gender, COUNT( *)  FROM `students` GROUP BY `gender` ;

5、GROUP BY+HAVING的使用

HAVING作用和WHERE类似,都是过滤数据的,但HAVING是过滤分组数据的,只能用于GROUP BY。

例:统计学生表里所有男生人数与女生人数,如果男生或女生人数小于6人,则不统计该分组

SELECT gender, COUNT( *)  FROM `students` GROUP BY `gender` HAVING COUNT( *)  >6;

6、GROUP BY+WITH ROLLUP的使用

WITH ROLLUP的作用是在最后记录后面新增一行,显示select查询时聚合函数的统计和计算结果。

例:统计学生表里所有男生人数与女生人数,并在最后做男女生总人数汇总记录

SELECT gender, COUNT( *)  FROM `students` GROUP BY `gender` WITH ROLLUP ;

 

 

评论
头像
验证码:
相关推荐

七年之痒是什么意思

520送什么给女友

第一次见女方父母送什么好




如果未经特殊说明,本站内容皆为原创,转载内容如果侵犯了您的权益,如有侵权请联系管理员删除
联系QQ:2380712278

备案号:皖ICP备19012824号