聚合函数 | 函数作用 |
---|---|
COUNT(parameter) | 计算表中的记录数(行数) |
SUM(parameter) | 计算表中数值列的数据合计值 |
AVG(parameter) | 计算表中数值列的数据平均值 |
MAX(parameter) | 求出表中任意列中数据的最大值 |
MIN(parameter) | 求出表中任意列中数据的最小值 |
所谓聚合,就是将多行汇总为一行。实际上,所有的聚合函数都是这样,输入多行输出一行。
注意:所有的聚合函数,如果以列名为参数,那么在计算之前就已经把NULL值排除在外了
聚合函数会将NULL排除在外。但COUNT(*)例外,并不会排除NULL。
DISTINCT不仅限于COUNT函数,所有的聚合函数都可以使用
COUNT函数
注意,count函数不会囊括为NULL的数据列!
所以,针对不同的列,count()的计算值是不同的!例如有NULL值的和没有NULL值的列。
SELECT COUNT(shiire_tanka) FROM Shohin;
如果shiire_tanka全是NULL值,那么返回0;如果shiire_tanka不全为NULL值,返回除了NULL的个数。
COUNT(*)会得到包含NULL的数据行数,因为(*)代表所有行!而COUNT(<列名>)会得到NULL之外的数据行数。
MIN 和 MAX
MAX / MIN函数和SUM / AVG函数有一点不同,那就是SUM / AVG函数只能对数值类型的列使用,而MAX / MIN函数原则上可以适用于任何数据类型的列。
例如时间类型数据!
聚合函数和DISTINCT
计算的时候,有时候为了方便统计,需要去除重复项之后再做进一步计算
SELECT COUNT(DISTINCT shohin_bunrui) FROM Shohin;
上面统计的是shohin_bunrui列中,值不为NULL的行数
DISTINCT不仅限于COUNT函数,所有的聚合函数都可以使用