Spotfire连续计数

时间:2016-04-28 19:44:06

标签: spotfire

我是Spotfire的新手,所以我希望我能正确地提出这个问题。

我的表格包含Corp_IDDateFlagged列。根据{{​​1}}是否在该日期生产,标记的列为“1”或“0”。

我需要一个自定义表达式,如果标记列为“0”则返回“0”,但如果标记列为“1”,那么我需要它返回多少连续“1 “s在Corp_ID的字符串中。

Corp_ID

提前感谢您的任何帮助! KC

1 个答案:

答案 0 :(得分:1)

作为您用于返回数据的查询的一部分,这将更容易实现,但如果您必须在spotfire中执行此操作,我建议您这样做。

1-创建包含[Corp_ID]和[Date](命名为'DateHr')的层次结构列

2-添加一个名为'Concat Flags'的计算列,它连接所有以前的标志值:Concatenate([Flagged])OVER(Intersect(Parent([Hierarchy.DateHr]),allPrevious([Hierarchy.DateHr])) )

3-添加一个计算列,它将返回Concat Flags字段中的0的数量(命名为'#of 0s'):Len([Concat Flags]) - Len(替换([Concat Flags],“0” , “”))

4-添加包含[Corp_ID]和[#of 0s](命名为'CorpHr')的层次结构列

5-添加计算列以返回所需的值:[Flagged] = 1时的情况,然后Sum([Flagged])OVER(Intersect([Hierarchy.CorpHr]))else 0 end

注意:以上假设您使用的是Spotfire 7.5版。在计算列中使用层次结构的语法在早期版本中略有不同。)