Spotfire:CrossTable中的UniqueSum

时间:2015-08-26 08:54:33

标签: crosstab spotfire

有没有办法在CrossTable中使用多表数据和Sum聚合?示例数据如下所示: enter image description here

UniqueCount(actid)聚合适用于连接数据: enter image description here

但是我必须计算每个细胞的[bdg]列的总和,并且每个不同的[actid]的值应该计算一次。当使用简单的Sum(bdg)值时,预计会错误地计算: enter image description here

在这种情况下,Highlited值应为1010和1110。

有没有人知道如何按要求运行?也许有一些方法可以使用相关的数据表或实现“UniqueSum”聚合......

提前致谢

2 个答案:

答案 0 :(得分:2)

右键单击Sum(bdg)属性并选择自定义表达式 ...

试试这个:

总和([bdg])OVER([actid])

这应该将数据切换为actid。否则在那里玩,直到你得到你想要的。以下是有关OVER功能的更多信息:

http://stn.spotfire.com/spotfire_client_help/ncfe/ncfe_over_functions.htm

答案 1 :(得分:1)

终于找到了所需的解决方案。 首先,添加几个计算列,使每个唯一[actid]只有单行的[bdg]值:

排名:Rank(RowId(),"desc",[actid])

bdg_unq:If([rank]=1,[bdg],null)

然后我们可以在交叉表中使用以下表达式作为聚合:

Sum([bdg_unq]) over (Intersect(All([Axis.Rows]),[Axis.Columns],[actid]))

enter image description here