MySQL聚合函数

MySQL聚合函数,第1张

很多时候,我们查询数据的时候都不会把明细数据查询出来,那样一般意义也不大。更多的时候是根据业务需求,把数据聚合成业务能直接使用的数据。MYSQL中有5个聚合函数,如下面5个,用的最多的还是count和sum,下面分别介绍一下用法。

【COUNT】

在MySQL中,COUNT()函数统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数,使用方法有以下两种:

求order表中,查询一共有多少条订单数,SQL语句如下↓

【SUM】

在MySQL中,SUM()是一个求总和的函数,返回指定列值的总和。

求order表中所有产品销售数量,SQL语句如下↓

【AVG】

在MySQL中,AVG()函数通过计算返回的行数和每一行数据的和,求得指定列数据的平均值。

求order表中,2021年所有产品的平均单价,SQL语句如下↓

【MAX/MIN】

在MySQL中,MAX()函数是用来返回指定列中的最大值。

求order表中,查询最大的单价价格,SQL预计如下↓

在MySQL中,MIN()函数是用来返回指定列中的最小值。

求order表中,查询最小的单价价格,SQL预计如下↓

【结合GROUP BY】

正常情况下,聚合函数都是搭配着GROUP BY来使用的。可以是按省份聚合、产品聚合、时间聚合等等。下面演示每个品牌最低单价的聚合,其他几个聚合函数使用方式一样,SQL语句如下↓

还可以用ORDER BY排个序,求每个品牌累计销售价格的SQL语句,从高到低排序↓

End

◆ PowerBI开场白

◆ Python高德地图可视化

◆ Python不规则条形图

上一篇聚合函数末尾处使用了GROUP BY,但没有做具体的介绍,这一篇就主要介绍一下GROUP BY的使用方法。顺便介绍一下对分组查询的过滤关键词HAVING的用法。

在MySQL中,GROUP BY关键词可以根据一个或多个字段对查询结果进行分组,类似于Excel中的数据透视表。可以单独使用,但一般情况下都是结合聚合函数来使用的。

语法格式如下:

下面演示都是基于这一张简单的省份对应大区的表格。

【单独使用GROUP BY】

单独使用GROUP BY关键字时,查询结果会只显示每个分组的第一条记录。

根据省份表里面的大区进行聚合,查询全国共分成了几个大区,SQL语句如下↓

【GROUP BY结合聚合函数】

5个聚合函数上一篇已经详细介绍了用法,GROUP BY和聚合函数结合使用也是最频繁的,下面就继续使用省份表来求每个大区有多少个省份,对应的聚合函数就是COUNT函数,SQL语句如下↓

【GROUP BY结合GROUP_CONCAT】

这还是一个很有用的功能,GROUP_CONCAT() 函数会把每个分组的字段值都合并成一行显示出来。

下面继续使用省份表,把每个大区对应的省份放在一行展示,用分号分开,SQL语句如下↓

【GROUP BY结合WITH ROLLUP】

WITH POLLUP关键词用来在所有记录的最后加上一条记录,这条记录是上面所有记录的总和,SQL语句如下↓

【GROUP BY结合HAVING】

在MySQL中,可以使用HAVING关键字对分组后的数据进行过滤。

使用 HAVING 关键字的语法格式如下:

HAVING关键词和WHERE关键词都可以用来过滤数据,且HAVING支持WHERE关键词中所有的 *** 作符和语法。但是WHERE和HAVING关键字也存在以下几点差异:

下面筛选一下省份数量在7个及以上的大区,SQL语句如下↓

【GROUP BY结合ORDER BY】

聚合后的数据,一半情况下也是需要进行排序的,通过ORDER BY对聚合查询结果进行排序,对省份数量按从大到小进行排序,SQL语句如下↓

End

◆ PowerBI开场白

◆ Python高德地图可视化

◆ Python不规则条形图

select A.name,A.sum,B.zong from (select name, sum(xiaoshou) as sum from shujv group by name) A

inner join (select name,zong from shujv order by month desc Limit 1) B

on A.name=B.name


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8391430.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存