MDX Расчетная мера
Ниже мое требование на картинке
1-я таблица имеет как минимум степень детализации. Среднее значение рассчитывается как Date + Place
. Так что в среднем 565 = (2865/5)
,
Переход ко второй таблице. Среднее значение для места 702 равно 114, что правильно, а для 704 - 866, что тоже верно. Но окончательный ответ такой же, как и среднее значение для всех 5 записей.
Но мой вывод должен быть как в среднем Date + Place
уровень для одного Date + Place
но когда выбраны два места, оно должно быть средним на уровне места, а сумма на общем выходе.. окончательное значение должно быть 980 (сумма (114+866))
Может у кого-то есть решение для этого?
2 ответа
Как и в случае с любым средним значением в многомерном SSAS, вам нужно создать две физические меры. Первый - это сумма A, которая равна AggregateFunction=Sum. Вторым является счетчик строк, который представляет собой AggregateFunction=Count.
Более быстрый способ реализовать ваши расчеты с помощью этой рассчитанной меры:
SUM(
EXISTING [Place].[Place].[Place].Members,
DIVIDE( [Measures].[Sum of A], [Measures].[Count of Rows] )
)
Однако если вы хотите повысить производительность и правильно обрабатывать фильтры множественного выбора, создайте физическую меру с именем Avg A, которая будет AggregateFunction = Sum, для нового столбца в вашей таблице SQL, который всегда равен 0. Затем перезапишите значения в этой мере с помощью следующее заявление о сфере действия:
SCOPE([Place].[Place].[Place].Members);
[Measures].[Avg A] = DIVIDE( [Measures].[Sum of A], [Measures].[Count of Rows] );
END SCOPE;
Попробуй это:
AvgA = SUMX(SUMMARIZE(Table2, Table2[Place], "A", AVERAGE(Table2[A])), [A])
Это займет среднее A
группировка по каждому Place
а затем подвести их итоги для промежуточного итога.