一 聚集函数
实际应用中,经常需要汇总数据而不用把它们实际检索出来,MySQL中提供了专门的函数,使用这些函数可以方便的完成以下应用场景:
- 确定表中行数(或者满足某个条件或包含某个特定值的行数)。
- 获得表中行组的和。
- 找出表列(或所有行或某些特定的行)的最大值、最小值和平均值。
聚集函数(aggregate function):运行在组上,计算和返回单个值的函数。
1.avg()函数
通过对表中行数计数并计算特定列值之和,求得该列的平均值。avg()可以用来返回所有列的平均值,也可以用来返回特定列或行的平均值。
select avg(prod_price) as avg_price from products;
上面语句使用avg()返回products表中所有产品的平均价格。
select avg(prod_price) as avg_price from products where vend_id = 1003;
上面语句返回特定供应商所提供产品的平均价格。
注意:1.avg()只能用来确定特定数值列的平均值,列名必须作为函数参数给出,如果要获得多个列的平均值,应该使用多个该函数。
2.avg()将忽略列值为NULL的行。
2.count()函数
用来计数。可以利用count()确定表中行的数目或符合特定条件的行的数目。一共有两种使用方式:
- 使用count(*)对表中行的数目进行计数,无论表列中包含的是NULL还是非空值。
- 使用count(column)对特定列中具有值得行进行计数,忽略NULL。
select count(*) as num_cust from customers;
这个语句将返回customers表中客户总数,计数值在num_cust中返回。
select count(cust_email