Предложение: Рассчитайте меры в двух разных, но сходных контекстах периода - PullRequest
0 голосов
/ 27 января 2020

В моей системной базе данных есть таблица заявок, в которой есть столбец EventDate, столбец значения события (ON и OFF) и 4 столбца, которые будут показателями (суммой) в моей таблице фактов. Эти заявки будут использованы для создания таблицы фактов, которая будет использоваться в 2 отчетах в разных контекстах.

  • Первый отчет будет общим контекстом. Сумма мер за период даты. (От DeginDate до EndDate).

  • Второй отчет аналогичен, также будет иметь BeginDate to EndDate, но будет мерами в контексте подпериода. Эти подпериоды ограничиваются возникновением последовательных событий (ВКЛ / ВЫКЛ). Период билетов с ВКЛ, следующий период ВЫКЛ, следующий период ВКЛ ...

Итак, что я делаю в таблице фактов: я создаю еще один столбец дат в моем факте таблица, связанная с подпериодом, который будет датой первого события подпериода (если мой билет включен, первая дата первого билета будет включена, если мой билет выключен, будет датой первого тикета OFF).

  • Запросы в кубе в первом контексте будут использовать только «eventDate» в фильтре WHERE.
  • Запросы в кубе во втором контексте также будут использовать 'eventDate' в фильтре WHERE, но будут группироваться по 'beginSubPeriod' ON ROWS.

Моя таблица фактов:

Event eventDate beginSubPeriod measure1 measure2 measure3 measure4 
ON    10:00     10:00          5        13       14       17
ON    10:32     10:00          7        11       8        95
ON    10:47     10:00          3        18       44       32
ON    10:52     10:00          4        25       31       27
OFF   10:57     10:57          2        11       25       87
OFF   11:21     10:57          1        13       21       63
OFF   11:28     10:57          1        19       28       69
ON    11:45     11:45          4        12       45       32
ON    11:59     11:45          9        14       62       44

Мне не очень нравится мой подход, потому что я потерял больше времени в своем ETL, поместив столбец 'beginSubPeriod' во все мои строки.

Я не знаю, было ли хорошее решение. Этот подход вы бы использовали на самом деле к запросам таблиц / кубов? Или другой?

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

...