首页 > 解决方案 > 红移四舍五入问题

问题描述

我有一个表,其中有一个 numeric(23,2) 字段,我需要将其除以一个常数。

我的基线是这个聚合

select site, sum(sales) / 1.07 as sales from sales group by site;

但是当我添加另一列然后比较所有列的总和时,我注意到一些小数下降

select site, product, sum(sales) / 1.07 as sales from sales group by site, product;

在 Redshift 中是否有合适的方法来处理这种情况?

标签: sqlamazon-redshift

解决方案


我建议在求和之前先除法:

select site, product, sum(sales / 1.07) as sales
from sales
group by site, product;

从数学上讲,这应该是等价的。但是,由于数字在计算机中不是无限精确的,这可能会解决您的问题。


推荐阅读