У меня есть таблица фактов с двумя столбцами: '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 в расчете.
С наилучшими пожеланиями, Луис