数据库技术:MySQL 分组查询和聚合函数分享

概述

相信我们经常会遇到这样的场景:想要了解双十一天猫购买化妆品的人员中平均消费额度是多少(这可能有利于对商品价格区间的定位);或者不同年龄段的化妆品消费占比是多少(这可能有助于对商品备货量的预估)。

这个时候就要用到分组查询,分组查询的目的是为了把数据分成多个逻辑组(购买化妆品的人员是一个组,不同年龄段购买化妆品的人员也是组),并对每个组进行聚合计算的过程:。

分组查询的语法格式如下:

selectcname,group_fun,...fromtname[wherecondition] groupbygroup_expression[havinggroup_condition]; 

说明一下:

1、group_fun代表聚合函数,是指对分组的数据进行聚合计算的函数。

2、group_expression代表分组表达式,允许多个,多个之间使用逗号隔开。

3、group_condition 分组之后,再对分组后的数据进行条件过滤的过程。

4、分组语法中,select后面出现的字段要么是groupby后面的字段,要么是聚合函数的列,其他类型会报异常,我们下面的内容中会详细说明。 

说分组之前,先来看看聚合函数,聚合函数是分组查询语法格式中重要的一部分。我们经常需要汇总数据而不用把它们实际检索出来,所以MySQL提供了专门的函数。使用这些函数,可用于计算我们需要的数据,以便分析和生成报表。

聚合函数

聚合函数有以下几种。 

函数 说明 AVG() 返回指定字段的平均值 COUNT() 返回查询结果行数 MAX() 返回指定字段的最大值  MIN() 返回指定字段的最小值 SUM() 返回指定字段的求和值

AVG()函数

AVG()通过对表中行数计数并计算特定列值之和,求得该列的平均值。AVG()可用来返回所有列的平均值,也可以用来返回特定列或行的平均值。

下面示例返回用户表中用户的平均年龄:

mysql>select*fromuser2; +----+--------+------+----------+-----+ |id|name|age|address|sex| +----+--------+------+----------+-----+ |1|brand|21|fuzhou|1| |2|helen|20|quanzhou|0| |3|sol|21|xiamen|0| |4|weng|33|guizhou|1| |5|selina|25|NULL|0| |6|anny|23|shanghai|0| |7|annd|24|shanghai|1| |8|sunny|NULL|guizhou|0| +----+--------+------+----------+-----+ 8rowsinset mysql>selectavg(age)fromuser2; +----------+ |avg(age)| +----------+ |23.8571| +----------+ 1rowinset

注意点:

1、AVG()只能用来确定特定数值列的平均值。
2、AVG()函数忽略列值为NULL的行,所上述就是数据库技术:MySQL 分组查询和聚合函数分享的全部内容,如果对大家有所用处且需要了解更多关于mysql数据库学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ctvol.com/dtteaching/909106.html

(0)
上一篇 2021年10月23日
下一篇 2021年10月23日

精彩推荐