组函数
组函数又叫做聚集函数(aggregation function),它在一个行的集合(一组行)上进行操作,对每个组给一个结果。每个组函数接受一个参数。参数expr通常是列或表达式。默认情况下,组函数忽略列值为null的行,不把它们拿来参与计算。
组函数就是对一个结果集进行操作
avg() //求平均值
sum() //求和
max ()//求最大值
min() //求最小值
count() //求数量和
count(1)推荐
count()返回表中满足where条件的行的数量
count(列):返回列值非空的行的数量
例3: 一共有多少个联盟会员号码?
SELECT count(leagueno)
FROM players;
count(distinct 列):返回列值非空的、并且列值不重复的行的数量
例4:查询球员所居住的城市的数量
SELECT count(DISTINCT town)
FROM players;
**建议使用字面量,因为count()的操作多一步解析步骤,相当于增加了CPU的消耗
默认情况下组函数都会忽略null的情况,不进行计算
count():返回表中满足where条件的行的数量**
例1: 有多少球员住在Stratford?
SELECT count()
FROM players
WHERE town=‘Stratford’;
注意:当使用组函数的select语句中没有group by子句时,中间结果集中的所有行自动形成一组,然后计算组函数
如果要处理null值就需要使用单行函数进行操作
select avg(ifnull(id,0)) from t1; //常用
可见,要想列值为NULL的行也参与组函数的计算,必须使用IFNULL函数对NULL值做转换
组函数不可以进行嵌套,但是单行函数可以进行嵌套
一个SELECT子句中可出现多个聚集函数
如果统计的列中只有NULL值,那么MAX和MIN就返回NULL