Как создать вычисляемый столбец путем сравнения строковых значений из другого столбца в точечном пожаре 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. для комбинации 1 и 'x' из col1 и col2, соответственно, по крайней мере, один 'c' в col3, поэтому результатом выражения является 'success'
  2. для комбинации 1 и 'y' из col1 и col2 соответственно нет 'c' в col3, поэтому результатом выражения является 'fail'
  3. для комбинации 2 и 'y' из col1 и col2 соответственно есть по крайней мере один 'c' в col3, поэтому результатом выражения является 'success'
  4. для комбинации 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", это выражение будет оценивать как" успех "!

Другие вопросы по тегам