Spotfire: Уникальная сумма в CrossTable

Есть ли способ использовать многотабличные данные в CrossTable вместе с суммированием? Пример данных выглядит следующим образом: введите здесь описание изображения

Агрегация UniqueCount(actid) отлично работает с объединенными данными: введите здесь описание изображения

Но мне нужно рассчитать сумму столбца [bdg] для каждой ячейки, и значение для каждого отдельного [actid] должно быть подсчитано один раз. При использовании просто значения Sum(bdg) рассчитываются ожидаемо неправильно: введите здесь описание изображения

В этом случае выделенные значения должны быть 1010 и 1110.

Кто-нибудь знает, как заставить это работать как требуется? Возможно, есть какой-то способ использовать связанные таблицы данных или реализовать агрегацию "UniqueSum"...

заранее спасибо


person int21h    schedule 26.08.2015    source источник


Ответы (2)


Щелкните правой кнопкой мыши свойство Sum(bdg) и выберите Пользовательское выражение...

Попробуй это:

Сумма([bdg]) OVER ([actid])

Это должно нарезать данные по actid. В противном случае поиграйте там, пока не получите то, что хотите. Вот дополнительная информация о функции OVER:

http://stn.spotfire.com/spotfire_client_help/ncfe/ncfe_over_functions.htm

person flux    schedule 26.08.2015
comment
На самом деле я потратил некоторое время на изучение использования оператора OVER раньше. Но только сегодня я наконец нашел решение: Sum([bdgrnk]) over (Intersect(All([Axis.Rows]),[Axis.Columns],[actid])) Где [bdgrnk] вычисляется столбец, содержащий [ bdg] значение только для одной строки на уникальный [actid] - person int21h; 26.08.2015

Наконец нашел нужное решение. Во-первых, добавление пары вычисляемых столбцов, чтобы иметь значение [bdg] только для одной строки на уникальный [actid]:

ранг: Rank(RowId(),"desc",[actid])

bdg_unq: If([rank]=1,[bdg],null)

Затем мы можем использовать следующее выражение в качестве агрегации в кросс-таблице:

Sum([bdg_unq]) over (Intersect(All([Axis.Rows]),[Axis.Columns],[actid]))

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

person int21h    schedule 26.08.2015