在利用ShardingSphere分组聚合时是,出现了数据汇总不精确问题。我这里只举行了分表,未举行分库。利用的是广播查询,因为是定时使命统计,无法利用到分片键。举行分组的字段是两个
1、 SQL查询列,不要利用【IFNULL(sum(xxx),0))】 直接接纳【sum(xxx)】方式。 -- 应该是版本问题,目前不相识是否修复了。不支持 IFNULL ?
2、如果去除了【IFNULL】还是不行,那么可以利用一个融合方法。利用【concat】函数,将多个分组字段合并举行统计,如许【ShardingSphere】在举行【分组归并】时,可以很好的举行聚合。看看是否可以解决:
SQL SELECT concat(upp.type,'_', IFNULL(p.tag,'')) as channelIdProductLoanTag, sum(upp.loan_amount) as loanAmount FROM tb1 upp -- 分片表 left join x2 p on upp.product_id = p.id -- 非分表表 WHERE upp.state = 7 group by channelIdProductLoanTag order by channelIdProductLoanTag
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |