聚集函数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;
