12. 汇总数据
1. 聚集函数
- 聚集函数(aggregate function)运行在行组上,计算和返回单个值的函数
1.1. avg()函数
AVG()也可以用来确定特定列或行的平均值。下面的例子返回特定供应商所提供产品的平均价格
NULL值AVG()函数忽略列值为NULL的行。
只用于单个列AVG()只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出。为了获得多个列的平均值,必须使用多个AVG()函数。
1.2. count()函数
用COUNT()确定表中行的数目或符合特定条件的行的数目。
COUNT()函数有两种使用方式。
- 使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值(NULL)还是非空值。
- 使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL值。
1.3. max()函数
MAX()返回指定列中的最大值。MAX()要求指定列名
对非数值数据使用MAX()虽然MAX()一般用来找出最大的数值或日期值,但MySQL允许将它用来返回任意列中的最大值,包括返回文本列中的最大值。在用于文本数据时,如果数据按相应的列排序,则MAX()返回最后一行。
MAX()函数忽略列值为NULL的行。
1.4. min()函数
- MIN()的功能正好与MAX()功能相反,它返回指定列的最小值。

- 对非数值数据使用MIN() MIN()函数与MAX()函数类似,MySQL允许将它用来返回任意列中的最小值,包括返回文本列中的最小值。在用于文本数据时,如果数据按相应的列排序,则MIN()返回最前面的行。
1.5. sum()函数
SUM()用来返回指定列值的和(总计)。
SUM()也可以用来合计计算值
- SUM()函数忽略列值为NULL的行。
2. 聚集不同值
聚集函数的DISTINCT的使用
以上5个聚集函数都可以如下使用:
- 对所有的行执行计算,指定ALL参数或不给参数(因为ALL是默认行为);
- 只包含不同的值,指定DISTINCT参数。
- ALL为默认ALL参数不需要指定,因为它是默认行为。如果不指定DISTINCT,则假定为ALL。
如果指定列名,则DISTINCT只能用于COUNT()。DISTINCT不能用于COUNT(*),因此不允许使用COUNT(DISTINCT),否则会产生错误。类似地,DISTINCT必须使用列名,不能用于计算或表达式。
3. 组合聚集函数
- 实际上SELECT语句可根据需要包含多个聚集函数。


12. 汇总数据
http://binbo-zappy.github.io/2024/11/27/mysql_bzbh/12-汇总数据/