如何通过比较 Tibco spot fire 中另一列的字符串值来创建计算列
How to create a calculated column by comparing string values from another column in Tibco spot fire
有人可以帮我创建一个计算
列如下所述?
考虑 table
col1 | col2 | col3
1 | x | ER
1 | x | IG
1 | x | C
1 | y | ER
1 | y | ER
2 | y | IG
2 | y | C
2 | y | ER
2 | z | ER
2 | z | IG
我需要一个计算列,其中显示 'success' 如果 col3 上至少存在一个 'C' 用于 col1 和 col2 组,否则 'fail'.
所以我的新 table 必须看起来像:
col1 | col2 | col3 | calculated_col
1 | x | ER | success
1 | x | IG | success
1 | x | C | success
1 | y | ER | fail
1 | y | ER | fail
2 | y | IG | success
2 | y | C | success
2 | y | ER | success
2 | z | ER | fail
2 | z | IG | fail
即:
- 对于col1和col2中的1和'x'的组合,在col3处至少有一个'c',所以表达式结果为'success'
- 对于col1和col2的1和'y'组合,col3处没有'c',所以表达式结果为'fail'
- 对于col1和col2中的2和'y'的组合,在col3处至少有一个'c',所以表达式结果为'success'
- 对于col1和col2中的2和'z'的组合,col3处没有'c',所以表达式结果为'fail'
您可以使用 Intersect
OVER 函数根据您定义的层次结构(在本例中为 col1>col2)收集单元格中的值。
以下表达式产生您想要的结果:
If(
Find("C", UniqueConcatenate([col3]) OVER (Intersect([col1], [col2]))) > 0,
"success","fail"
)
它不是特别可靠,但是:如果您在 col3
中有任何其他值包含“C
”,则此表达式的计算结果将是 "success"!
有人可以帮我创建一个计算 列如下所述?
考虑 table
col1 | col2 | col3 1 | x | ER 1 | x | IG 1 | x | C 1 | y | ER 1 | y | ER 2 | y | IG 2 | y | C 2 | y | ER 2 | z | ER 2 | z | IG
我需要一个计算列,其中显示 'success' 如果 col3 上至少存在一个 'C' 用于 col1 和 col2 组,否则 'fail'.
所以我的新 table 必须看起来像:
col1 | col2 | col3 | calculated_col 1 | x | ER | success 1 | x | IG | success 1 | x | C | success 1 | y | ER | fail 1 | y | ER | fail 2 | y | IG | success 2 | y | C | success 2 | y | ER | success 2 | z | ER | fail 2 | z | IG | fail
即:
- 对于col1和col2中的1和'x'的组合,在col3处至少有一个'c',所以表达式结果为'success'
- 对于col1和col2的1和'y'组合,col3处没有'c',所以表达式结果为'fail'
- 对于col1和col2中的2和'y'的组合,在col3处至少有一个'c',所以表达式结果为'success'
- 对于col1和col2中的2和'z'的组合,col3处没有'c',所以表达式结果为'fail'
您可以使用 Intersect
OVER 函数根据您定义的层次结构(在本例中为 col1>col2)收集单元格中的值。
以下表达式产生您想要的结果:
If(
Find("C", UniqueConcatenate([col3]) OVER (Intersect([col1], [col2]))) > 0,
"success","fail"
)
它不是特别可靠,但是:如果您在 col3
中有任何其他值包含“C
”,则此表达式的计算结果将是 "success"!