Выражение MDX для агрегации по SUM на один уровень выше самого низкого?

У меня есть два измерения A, B и мера M, которая агрегируется путем суммирования.

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

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

Теперь проблема, с которой я столкнулся, заключается в том, что я хотел бы суммировать по столбцам (или по строкам), чтобы я мог вычислить соотношение значений по столбцам:

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

Я пробовал такие выражения, как [Measures].[M] / SUM([Measures].[M]) или [Measures].[M] / ([All], [Measures].[M]) - безрезультатно.

Я хотел бы добавить, что формула должна быть динамической и не использовать конкретную детализацию. Выражаясь словами, знаменатель должен быть суммой мер, если при детализации не будет последнего шага.

Я использую Mondrian 4.6 BTW, который не полностью совместим с MDX для этой версии.


person Raffael    schedule 03.06.2014    source источник


Ответы (1)


Вы можете попробовать что-то вроде этого:

With 
  SET ROWSET as [Dimension 1].[Some Level].Members
  SET COLSET as [Dimension 2].[Other Level].Members

  MEMBER [Measures].[Total] as Aggregate( ROWSET, [Measures].[M] )
  MEMBER [Measures].[Ratio] as [Measures].[M] / [Measures].[Total]

Select
  ROWSET on Rows,
  COLSET * { [Measures].[M], [Measures].[Ratio] } on Columns

From [My Cube]

Параметры вашего запроса будут использоваться только для определения ROWSET и COLSET.

Чтобы получить итог по строкам, просто замените ROWSET на COLSET в общем определении,

person nsousa    schedule 04.06.2014
comment
Я сомневаюсь, что это поможет мне, потому что ваше решение зависит от указания размеров. Но я попробую. - person Raffael; 04.06.2014
comment
Не забудьте поддержать BI.stackexchange.com: joyofdata .de/blog/a-stackoverflow-но-для-бизнес-аналитики - person Raffael; 04.06.2014