Math spotifre求和

Math spotifre求和,math,sum,spotfire,Math,Sum,Spotfire,我尝试在spotfire上比较数组中的两个表达式 但是他们没有给我相同的结果,我不明白为什么从数学的角度来看 Sum([OUTS_P] - [OUTS_P2]) Sum([OUTS_P]) - Sum([OUTS_P2]) 您知道在哪种情况下这两种操作可能不同吗?以下表为例: A B 1 3 2 2 3 1 我们有两个结果: Sum([A]) - Sum([B]) = Sum(1, 2, 3) - Sum(3, 2, 1) = 6 - 6 = 0 Sum([A] -

我尝试在spotfire上比较数组中的两个表达式 但是他们没有给我相同的结果,我不明白为什么从数学的角度来看

Sum([OUTS_P] - [OUTS_P2])
Sum([OUTS_P]) - Sum([OUTS_P2])

您知道在哪种情况下这两种操作可能不同吗?

以下表为例:

A    B
1    3
2    2
3    1
我们有两个结果:

Sum([A]) - Sum([B]) = Sum(1, 2, 3) - Sum(3, 2, 1) = 6 - 6 = 0

Sum([A] - [B]) = Sum( (1 - 3), (2 - 2), (3 - 1) ) = Sum(-2, 0, 2) = 0
这正是你所期望的,而且这将在100%的时间内起作用

当然,除非您的桌子与此相似:

A    B
1    3
2    
3    1
B:2
NULL
(空)
。此表将表达式计算为:

Sum([A]) - Sum([B]) = Sum(1, 2, 3) - Sum(3, 1) = 6 - 4 = 2

Sum([A] - [B]) = Sum( (1 - 3), (3 - 1) ) = Sum(-2, 2) = 0
原因是
NULL
是非数字的;无法计算
2-NULL
,该数据被
Sum()
忽略


如果希望两个表达式总是得到相同的答案,可以为将在
Sum()中使用的每一列创建一个计算列,如下所示:


然后在此列而不是原始列上进行聚合

仍然有点奇怪的是,和函数在0中转换为null,而不是+符号。。。
If([Column] is NULL, 0, [Column])