Как создать вычисляемый столбец путем сравнения строковых значений из другого столбца в точечном пожаре Tibco
Может кто-нибудь, пожалуйста, помогите мне создать вычисляемый столбец, как описано ниже?
рассмотреть таблицу
col1 | col2 | col3 1 | х | ER 1 | х | И.Г. 1 | х | С 1 | у | ER 1 | у | ER 2 | у | И.Г. 2 | у | С 2 | у | ER 2 | z | ER 2 | z | И.Г.
Мне нужен вычисляемый столбец, который говорит "успех", если существует хотя бы один "С" на col3 для группы col1 и col2, иначе "сбой".
поэтому моя новая таблица должна выглядеть так:
col1 | col2 | col3 | calculated_col 1 | х | ER | успех 1 | х | IG | успех 1 | х | C | успех 1 | у | ER | потерпеть поражение 1 | у | ER | потерпеть поражение 2 | у | IG | успех 2 | у | C | успех 2 | у | ER | успех 2 | z | ER | потерпеть поражение 2 | z | IG | потерпеть поражение
то есть:
- для комбинации 1 и 'x' из col1 и col2, соответственно, по крайней мере, один 'c' в col3, поэтому результатом выражения является 'success'
- для комбинации 1 и 'y' из col1 и col2 соответственно нет 'c' в col3, поэтому результатом выражения является 'fail'
- для комбинации 2 и 'y' из col1 и col2 соответственно есть по крайней мере один 'c' в col3, поэтому результатом выражения является 'success'
- для комбинации 2 и 'z' из col1 и col2 соответственно нет 'c' в col3, поэтому результатом выражения является 'fail'
1 ответ
Решение
Вы можете использовать Intersect
Функция OVER для сбора значений в ячейках в соответствии с определенной вами иерархией (в данном случае col1>col2).
следующее выражение дает желаемые результаты:
If(
Find("C", UniqueConcatenate([col3]) OVER (Intersect([col1], [col2]))) > 0,
"success","fail"
)
однако это не особенно надежно: если у вас есть какие-либо другие значения в col3
которые содержатC
", это выражение будет оценивать как" успех "!