聚集函数aggregate function

运行在组上,计算和返回单个值的函数

函数 说明
AVG() 返回某列的平均值
COUNT() 返回某列的行数
MAX() 返回某列的最大值
MIN() 返回某列的最小值
SUM() 返回某列值之和

select AVG(column_name) AS avg_value from table_name where column_name1=100;

AVG()仅确定特定数值列的平均值,多个列的平均值,需要使用多个AVG()函数
AVG()忽略列值为NULL的行

COUNT()有两种使用方式:
COUNT(*)对表的行数进行计数,不区分空值NULL还是非空
COUNT(column)对特定列中具有值的行进行计数,忽略NULL

select COUNT(*) AS num_row from table_name;

MAX()
一般用于找出最大的数值型或日期型。用于文本数据时,返回最后一行。
MAX()函数忽略值为NULL的行

MIN()
一般用于找出最小的数值型或日期型。用于文本数据时,返回最前面的行。
MIN()函数忽略值为NULL的行

SUM()
SUM()函数忽略值为NULL的行

聚集不同值

MySQL 5.0.3添加DISTINCT
只包含不同的值,指定DISTINCT参数;不指定DISTINCT,则假定ALL(默认行为)

select AVG( DISTINCT column_name ) AS avg_value from table_name where column_name=100;

DISTINCT+COUNT
DISTINCT只能用于COUNT(),不能用于COUNT(*)

组合聚集函数

select COUNT(*) AS num_row, MIN( column_name ) AS min_row, MAX( column_name ) AS max_row, AVG( column_name ) AS avg_row from table_name;