[运算符]计算结果不正确

【详述】
SELECT
SUM(Amount * Proportion * ChangeShare / Volume) Amount 错误结果
SUM(Amount * (Proportion * ChangeShare / Volume) ) Amount 正确结果
查询结果不一致

其中字段定义为:
Amount decimal(18, 2) NOT NULL
Proportion decimal(9, 5) NOT NULL
ChangeShare decimal(27, 12) NOT NULL
Volume decimal(18, 2) NOT NULL

按照道理,应该括号的优先级可忽略,在SQL Server中,2个查询的结果是一样的,但在StarRocks中,结果不一致

【业务影响】
【StarRocks版本】2.5以及3.0以上
【集群规模】3fe+3be
【机器信息】基础配置

可能是乘积结果精度丢失了,方便发下实际字段的数据么我这边复现下嘛?您使用是具体版本号是什么,select current_version();

以下版本都会出现此问题
2.5.2 2.5.3(因为升级具体版本丢失)
3.0.0-RC02 84d70fd
3.0.1 a1f411b

由于数据较大,将底层数据做了汇总,进行简单测试,发现如下问题。

测试数据详见附件
测试数据.xlsx (10.5 KB)

3.0.1版本进行了如下尝试

新建一张表
CREATE TABLE IF NOT EXISTS TestData (
Amount decimal(27, 12) NOT NULL,
Proportion decimal(27, 12) NOT NULL,
ChangeShare decimal(27, 12) NOT NULL,
Volume decimal(27, 12) NOT NULL
)
DUPLICATE KEY(Amount,Proportion,ChangeShare,Volume)
DISTRIBUTED BY HASH(Amount)
PROPERTIES (
“replication_num” = “2”,
“compression” = “ZSTD”
);

导入测试数据
当执行
SELECT sum(Amount * Proportion * ChangeShare / Volume) Amount
FROM TestData
会报错Dividend fails to adjust scale to 48 that exceeds maximum value(38)

当执行
SELECT sum(Amount*(Proportion*ChangeShare/Volume)) Amount
FROM TestData
返回结果为null

初步怀疑,上述的测试,是导致结果不一致的原因。