#spotfire #spotfire-analyst
#spotfire #spotfire-аналитик
Вопрос:
И возможно ли в Spotfire использовать вычисляемое поле для подсчета изменения статуса каждый раз, когда оно изменяется с 0 на 1? например, если (предыдущая строка = 0 и текущая строка = 1, сумма, остальное пустое)
Комментарии:
Ответ №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])))