网站技术分析

一点一滴的积累,一点一滴的沉淀!

MYSQL语句group by、group by all和聚合函数的使用

一、GROUP BY概述:

“Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。

二、基本数据表如下:

mysql中group by的数据表

三、GROUP BY的使用:

1、group by的使用场景:查找全班男女生各有多少人?

1select sex,count(id) from think_test group bysex;

group by的使用场景:查找全班男女生各有多少人

2、group by和order by结合使用:查找全班男女生各有多少人并且升序排序?

1select sex,count(sex)

group by和order by结合使用:查找全班男女生各有多少人并且升序排序

1from think_test group by sex order by count(sex);

3、Group By中Select指定的字段限制:

1select sex,count(sex) as num sex from think_test group bysex;

执行以上sql语句会出错,截图如下:

group by中select指定字段的限制

原因是:在select指定的字段要么就要包含在Group By语句的后面,作为分组的依据;要么就要被包含在聚合函数中

4、GROUP BY ALL多列分组的使用:

“多列分组”实际上就是就是按照多列(字段1+字段2)合并后的值进行分组。

SQL Server中虽然支持“group by all”,但Microsoft SQL Server 的未来版本中将删除 GROUP BY ALL,避免在新的开发工作中使用 GROUP BY ALL。Access中是不支持“Group By All”的,但Access中同样支持多列分组

比如查找某个班级中某个年龄的男女生各有多少?

1select sex,age,count(id) from think_test group bysex,age;

group by查找某个班级中某个年龄的男女生各有多少

如果在window系统的sql命令行使用group by all,则会报错:

在window系统的sql命令行使用group by all,则会报错

5、group by与聚合函数:

group by语句中select指定的字段必须是“分组依据字段”,其他字段若想出现在select中则必须包含在聚合函数中,常见的聚合函数如下表:

group by和聚合函数的使用

比如:计算班里男女生的平均年龄:

1select sex,avg(age) from think_test group bysex;

group by和avg计算班里男女生的平均年龄


打赏 支付宝打赏 微信打赏

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.5.2 Zero

蜀ICP备18016898;版权:2016 @陸仴 

Music