摘自 https://www.liaoxuefeng.com/wiki/1177760294764384/1179611448454560
一、关于聚合函数,要特别注意:
1. MAX()
和MIN()
函数并不限于数值类型。如果是字符类型,MAX()
和MIN()
会返回排序最后和排序最前的字符。
2. 如果聚合查询的WHERE
条件没有匹配到任何行,COUNT()
会返回0,而SUM()
、AVG()
、MAX()
和MIN()
会返回NULL
:
3.AVG、COUNT、SUM、MAX等函数对NULL值处理
一、AVG()
求平均值
注意AVE()忽略NULL值,而不是将其作为“0”参与计算
二、COUNT(),两种用法
1、COUNT(*)
对表中行数进行计数,不管是否有NULL
2、COUNT(字段名)
对特定列有数据的行进行计数,忽略NULL值,如果计数字段行均为空,则返回0
三、MAX()、MIN()
求最大、最小值
都忽略NULL,如果均为null,则返回null
四、SUM()
可以对单个列求和,也可以对多个列运算后求和
忽略NULL值,且当对多个列运算求和时,如果运算的列中任意一列的值为NULL,则忽略这行的记录。
例如: SUM(A+B+C),A、B、C 为三行,如果某行记录中A列值为NULL,则不统计这行。如果都是空,则返回null
五、GROUP BY的使用注意事项
1、分组列中若有NULL,这也将作为一组,且NULL值排在最前面
2、除汇总函数计算语句外,SELECT中的选择列必须出现在GROUP BY 中
3、GROUP BY 可以包含任意数目的列,可以嵌套
转载文章:
http://m.studyofnet.com/news/1219.html
例子:
二、关于分组
1. 一定要记住,在分组之后,不是关键字段的值会按组合并,因此不能单独查询