Math spotifre求和
我尝试在spotfire上比较数组中的两个表达式 但是他们没有给我相同的结果,我不明白为什么从数学的角度来看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] -
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])