Исключить последний ряд фактов из меры суммы - PullRequest
0 голосов
/ 30 января 2020

У меня есть таблица фактов с двумя столбцами: 'timeInEventA', 'timeInEventB'. В этих столбцах хранится разница в секундах между фактическим и следующим билетом.

Пример: если у меня будет 'eventA' в 2020/01/04 05:00:00, а следующий билет будет 2020/01/04 05:01:10, столбец 'timeInEventA' в первый билет будет иметь значение «70».

Существует вероятность того, что в заявке не будет ни события A, ни события B, поэтому два значения в строке таблицы фактов будут равны 0.

Эта разница рассчитывается в ETL и сохраняется в Таблица фактов.

Проблема: клиент будет фильтровать период по дням. Поэтому он выберет «между 2020/01/03 и 2020/01/05 дать мне сумму timeInEventA и timeInEventB». Но было решено, что последний тикет фильтра будет исключен, поскольку следующее событие находится за пределами диапазона фильтра. Итак, что я могу сделать, чтобы исключить регистр последней строки из суммы?

В моей таблице фактов есть эти 2 столбца меры, суррогатный ключ к измерению даты (например, 20200103), суррогатный ключ для времени с мелкой детализацией (например, событие произошло 05:03:22 приведет к суррогатному ключу 0503) и суррогатному ключу для измерения клиента.

PS: в прошлом у меня была эта проблема в другой ситуации мне было предложено иметь меру суммы, указывающую на столбец меры, меру lastvalue, указывающую на тот же столбец, и производное вычисление вычитает последнее значение ( MDX: исключить элемент, который имеет то же свойство измерения меры )

Но для этой ситуации этот подход не разрешается. Если мой фильтр с 20200102 по 20200108, этот подход исключит все значения 20200108 в расчете.

С наилучшими пожеланиями, Луис

1 Ответ

0 голосов
/ 09 февраля 2020

Необходимо определить другую меру с использованием последнего непустого значения (это делается в проекте SSAS, вкладка Структура куба-> Определить новую меру). Затем вычтите его значение из вашей меры.

...