sql在没有命中对应数据行时,sql中有聚合函数会返回null,并添加进你的List集合中

导致list的size为1,使代码出现空指针

举个例子:

1.select *from good

2.SELECT COUNT(*) FROM (SELECT id FROM good WHERE id = 10) a

此时计数为0

3.SELECT COUNT(*) FROM (SELECT id,AVG(price) FROM good WHERE id = 10) a

在加入聚合函数后count计数为1,也就是返回了null,将null元素当做了一个集合元素

4.解决方法

select count(*) from (select id,avg(price) from good having avg(price) > 10000) a

 

更多推荐

sql 聚合函数的坑 聚合后count计数与预期不符