聚集函数(aggregate function):运行在行组上,计算和返回单个值的函数。
只能用于单个列:AVG()只能用来确定特定数值的平均值,而且列名必须作为函数参数给出。为了获得多个列的平均值,必须使用多个AVG()函数。AVG()函数忽略值为NULL的行。
COUNT()函数进行计数,该函数确定表中行的数目或符合特定条件的行的数目。
1)使用count(*) 对表中的行的数目进行计数,不管表列中包含的是空值(NULL)还是非空值。
2)使用count(Column)对特定列中具有值的行进行计数,忽略NULL值。
3)NULL值:如果指定列名,则指定列的值为空的行被count()函数忽略,但如果count()函数中用的是星号(*),则不忽略。
MAX()返回指定列中的最大值。该函数要求指定列名。
1)对非数值数据该函数:虽然MAX()一般用来找出最大的数值或日期值,但MySQL允许将它用来返回任意列中的最大值,包括返回文本列中的最大值。在用于文本数据时,如果数据按相应的列排序,则函数返回最后一行。
2)NULL值:函数忽略值为NULL的行。
MIN()的功能与MAX()功能正好相反,它返回指定列的最小值。与MAX()一样,MIN函数要求指定列名。
SUM()用来返回指定列值的和(总计)。SUM也可以用来合计计算值。
1)NULL值:函数忽略值为NULL的行。
聚集不同值:
1)对所有的行执行计算,指定ALL参数或不给参数(因为ALL是默认行为)
2)只包含不同的值,指定distinct参数。注意,如果指定列名,则distinct只能用于count(),不能用于count(*)。因此不允许使用count(distinct),否则会产生错误。类似地,distinct必须使用列名,不能用于计算或表达式。
3)取别名:在指定别名以包含某个聚集函数的结果时,不应该使用表中实际的列名。虽然这样做并非不合法,但使用唯一的名字会使SQL更易于理解和使用(以及将来容易排除故障)。