一:首先要明确,mysql中 sum() 函数是不统计null的,即使是sum(多个字段),其中某一个字段为null也不行
例: id val
1 1
2 null
3 3
sum(val) 结果为4,在计算是null值不会转为0进行相加,而是直接舍去
sum(id + val) 结果为8,其中第二行因为val=null ,所以整个舍去;
二:在统计数据时,如果结果为null,怎么转成0呢?
1.语法: IFNULL(字段,默认值) 即: IFNULL(字段,0)
2.使用COALESCE函数,改函数依次判断所有条件并且返回第一个不为null的值,
语法:COALESCE(字段1,字段2......) 即: COALESCE(sum(字段),0)
3.case WHEN 条件1 THEN 结果1 .. ELSE 其余结果 END
即: case when isnull(sum(字段)) then 0 else sum(字段) end