赞
踩
今天遇到一个场景,统计网站的用户访问量,功能还是比较简单,可能一个简单的sql就能返回结果,由于访问用户需要去重,所以就写了如下的sql,我用的是mysql 8+
- SELECT count(1) num FROM t_customer_visit_log WHERE logname = '来访用户'
- and create_time between '2010-01-01' and '2030-02-02' group by userid
正常应该也是这样,但是当记录为空的时候,查询结果不是0,而是空记录
这在后台请求的时候就会报错空指针异常,之前一直没遇到过,最后发现是分组去重的原因,分组的时候,结果应该是一条分组结果,而不是count的计算结果,所以一般遇到分组统计的话,最好做个处理,以免掉坑,我用的补救方式如下,仅供参考
- select count(1) num from (
- SELECT userid FROM t_customer_visit_log WHERE logname = '来访用户'
- and create_time between '2010-01-01' and '2030-02-02' group by userid
- ) visitpv
返回结果正常
备注:没试过其他的数据库,按正常理解的话,应该都会遇到这种问题。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。