GROUP BY使用spotfire

时间:2016-03-13 15:50:44

标签: spotfire

我正在使用Spotfire来构建折线图。数据集包含以下字段:

Requirement Project Name    Period  Score   Project Spend  
Req 1       Project 1      3/1/2016 2       750000  
Req 2       Project 1      3/1/2016 3       750000  
Req 3       Project 1      3/1/2016 2       750000  
Req 4       Project 1      3/1/2016 2       750000  
Req 1       Project 1      6/1/2016 2       750000  
Req 2       Project 1      6/1/2016 3       750000  
Req 3       Project 3      6/1/2016 2       500000  
Req 4       Project 3      6/1/2016 2       500000  

在折线图中,我在X轴上有周期,我需要Y轴上的项目SUM(Project Spend)

例如:

  • 对于X轴上的3/1/2016,Y上的值应为750000,因为只有一个项目处于活动状态(项目1)
  • 2016年6月1日在X轴上,Y的值应为750000 + 500000,因为在此期间有两个项目处于活动状态(项目1和项目3)

有人可以帮助我使用Y轴公式来获得所需的输出吗?

2 个答案:

答案 0 :(得分:0)

如果项目花费的值始终相同。您可以执行以下操作:

这仅适用于条形图,而不适用于折线图。折线图将线条分开,以便它不会添加值,即使您通过对其进行求和来聚合它们也是如此。

X-axis: [Period]
Y-axis: Max([Project Spend])
Color: [Project Name]

或者,如果从数据库中获取数据,则可以使用SQL查询对其进行聚合。

答案 1 :(得分:0)

首先,您需要添加一个计算列,以便每个项目只保留一行:

[unique spend]: If(Min(RowId()) OVER ([Project Name])=RowId(), [Project Spend], null)

然后创建折线图并将此表达式用于垂直轴:

Sum([unique spend]) over (AllPrevious([Axis.X]))