关于count(),sum(),avg(),max(),min()需要注意的一些地方及count(),avg(),sum(),max().min()对于null的处理

 

摘自 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. 一定要记住,在分组之后,不是关键字段的值会按组合并,因此不能单独查询

 

 

 


版权声明:本文为m0_46093829原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。