聚集函数( aggregate function) 运行在行组上,计算和返回单个值的函数
我们经常需要汇总数据而不用把它们实际检索出来,为此MySQL提供了专门的函数。使用这些函数, MySQL查询可用于检索数据,以便分析和报表生成。这种类型的检索例子有以下几种。 确定表中行数(或者满足某个条件或包含某个特定值的行数)。 MySQL给出了5个聚集函数。
AVG() 返回某列的平均值
COUNT() 返回某列的行数
MAX() 返回某列的最大值
MIN() 返回某列的最小值
SUM() 返回某列值之和
AVG()函数
VG()通过对表中行数计数并计算特定列值之和,求得该列的平均 值。 AVG()可用来返回所有列的平均值,也可以用来返回特定列或行的平均值
SELECT AVG(age) as avg_age FROM customers;
SELECT AVG(age) as avg_age FROM customers WHERE adress LIKE '北%';
COUNT()函数
COUNT()函数进行计数。可利用COUNT()确定表中行的数目或符合特定条件的行的数目。 COUNT()函数有两种使用方式。 使用COUNT(*)对表中行的数目进行计数, 不管表列中包含的是空值( NULL)还是非空值。
SELECT COUNT(*) FROM customers;
使用COUNT(column)对特定列中具有值的行进行计数,忽略 NULL值。 SELECT COUNT(name) FROM customers;
MAX()函数
MAX()返回指定列中的最大值。 MAX()要求指定列名,如下所示
SELECT MAX(age) FROM customers;
MIN()函数
MIN()的功能正好与MAX()功能相反,它返回指定列的最小值.如下所示
SELECT MIN(age) FROM customers;
SUM()函数
SUM()用来返回指定列值的和(总计)。如下所示
SELECT SUM(age) as sum_age from customers;
聚集不同值
下面的例子使用AVG()函数返回同学的平均价格。 它与上面的SELECT语句相同,但使用了DISTINCT参数,因此平均值只考虑各个不同的年龄:
SELECT AVG(DISTINCT age) from customers;
组合聚集函数
上面所有聚集函数例子都只涉及单个函数。但实际上SELECT语句可根据需要包含多个聚集函数。请看下面的例子:
SELECT COUNT(*) as total, MIN(age) as min_age, MAX(age) as max_age, AVG(age) as avg_age FROM customers;
网友评论