一、聚合函数
用这张表举例
1.SUM(列名)求和,只计算数值,忽略null
(1)隐式转换带来的错误
sum函数按理来说只能用来计算数值,但是我们尝试用sum函数来计算varchar类型的class字段的数据时居然没有报错,而是计算出了15的值,这其实是因为mysql会把字符串开头的数字截取出来进行求和例如1班会变成1,若字符串开头不是数字则看成0来对待例如abc123会变成0。
不推荐使用sum函数求取纯数值外的其他数据类型的数据,有可能会使数据出现错误。
(2)sum(列名)
可以看到所有分数被相加。
2.AVG(列名)求平均数,只计算数值,忽略null
(1)隐式转换带来的错误
和sum函数同理,也存在隐式转换带来的错误,隐式转换规则和sum函数的一样。
(2)avg(列名)
可以看到分数的平均值被求出。
3.MIN(列名)求最小值,只计算数值
4.MAX(列名)求最大值,只计算数值
5.COUNT(列名/常量/*)统计记录的条数
(1)count(列名),自动忽略null
可以看出id列一共有8条数据
score列只有6条数据,null的两条不计入,说明count(列名)函数自动忽略null
(2)count(常量)= count(*)它俩结果完全一样,而且都计入null行数据
(3)count(distinct 字段)去重统计
由上面的表可知,class只有1班,2班,3班三个班级,去重统计把class列重复的记录去掉后查出了一共有三条不重复的班级记录。
所有聚合函数都可以()