使用sum()函数求和时,会对 null 进行过滤(假如总共10条数据:8条有值,2条无值那种),不进行计算。但是,如果所有值都为null,返回的求和结果也会是null,不会是0。
解决
list.removeAll(Collections.singleton(null));
关联查询有时候也会出现类似情况。
尤其是left join、right join时容易出现部分字段空值。若此时,刚好查询出来进行sum的字段都是null,也可能会出现:“All elements are null”这种情况。