Spotfire — подсчитывает изменение статуса

#spotfire #spotfire-analyst

#spotfire #spotfire-аналитик

Вопрос:

И возможно ли в Spotfire использовать вычисляемое поле для подсчета изменения статуса каждый раз, когда оно изменяется с 0 на 1? например, если (предыдущая строка = 0 и текущая строка = 1, сумма, остальное пустое)

Комментарии:

1. i.stack.imgur.com/9PadG.png

Ответ №1:

На самом деле это довольно легко сделать.

Первым шагом вам нужно получить значение предыдущей строки. Для этого вам необходимо использовать агрегацию и функцию OVER . Например :

 First([col2]) over (Previous([col1]))
  

На втором шаге вы определяете, что предыдущее значение равно 1, а текущее равно 0.

Третий шаг, вам нужно выполнить накопительную сумму. Вы можете сделать все в одном вычисляемом столбце, но для большей ясности я разделю его:

Итак, ваш первый промежуточный столбец будет (назовем его TEMP):

 if(([UTE-CALC]]=0) and (First([UTE-CALC]]) over (Previous([RowID]))=1),1,0)
  

И ваш окончательный вычисляемый столбец будет выполнять совокупную сумму:

 If([UTE-CALC]=0,Sum([TEMP]) OVER (AllPrevious([RowID])))
  

Вот так:
введите описание изображения здесь

Комментарии:

1. Чтобы сделать это только в 1 столбце, просто замените TEMP на первое выражение: If([UTE-CALC]=0,Sum(if(([UTE-CALC]]=0) и (Первый([UTE-CALC]]) над (Предыдущий([RowID]))=1), 1,0)) OVER (AllPrevious([RowID])))