聚集函数

聚集函数(aggregate function) 运行在行组上,计算和返回单个值的函数
image.png

AVG()函数

AVG() 通过对表中行数计数并计算特定列值之和,求得该列的平均值。
NULL值 AVG() 函数忽略列值为NULL的行。
image.png

COUNT()函数

COUNT() 函数进行计数。
可利用COUNT()确定表中行的数目或符合特定条件的行的数目。
NULL值
如果指定列名,则指定列的值为空的行被COUNT() 函数忽略,但如果COUNT()函数中用的是星号(*),则不忽略。
image.png
image.png

MAX()函数

MAX()返回指定列中的最大值。MAX()要求指定列名
NULL值 MAX()函数忽略列值为NULL的行。
对非数值数据使用MAX() 虽然MAX()一般用来找出最大的 数值或日期值,但MySQL允许将它用来返回任意列中的最大 值,包括返回文本列中的最大值。在用于文本数据时,如果数 据按相应的列排序,则MAX()返回最后一行
image.png

MIN()函数

MIN()的功能正好与MAX()功能相反,它返回指定列的最小值。
NULL值 MIN()函数忽略列值为NULL的行。
对非数值数据使用MIN() MIN()函数与MAX()函数类似, MySQL允许将它用来返回任意列中的最小值,包括返回文本 列中的最小值。在用于文本数据时,如果数据按相应的列排序, 则MIN()返回最前面的行。
image.png

SUM()函数

SUM()用来返回指定列值的和(总计)。
在多个列上进行计算 如本例所示,利用标准的算术操作符, 所有聚集函数都可用来执行多个列上的计算。
NULL值 SUM()函数忽略列值为NULL的行。
image.png
image.png
image.png

聚集不同值

ALL为默认 ALL参数不需要指定,因为它是默认行为。如果 不指定DISTINCT,则假定为ALL
注意 如果指定列名,则DISTINCT只能用于COUNT()。DISTINCT 不能用于COUNT(),因此不允许使用COUNT(DISTINCT), 否则会产生错误。类似地,DISTINCT必须使用列名,不能用 于计算或表达式。
*将DISTINCT用于MIN()和MAX()
虽然DISTINCT从技术上可 用于MIN()和MAX(),但这样做实际上没有价值。一个列中的 最小值和最大值不管是否包含不同值都是相同的。
image.png

组合聚集函数

image.png
image.png