SQL 2008 - расчет уровня листа MDX с родительскими агрегатами
-
24-09-2019 - |
Вопрос
Какой оптимальный способ создать расчетную меру, чтобы вычислить пользовательскую формулу отклонения (я не могу использовать функцию дисперсии по умолчанию, потому что она не вмещает на себя индивидуальные веса). Таким образом, формула уровня листа будет иметь 2 компонента, один компонент будет фактом на уровне листа, а другой компонент станет родительским заполнителем на различных уровнях в иерархии. Таким образом, формула выглядит следующим образом: (нуждается в этой вычислении на каждом уровне листа)
(AB) ^ 2
Где A - это факт уровня листа [мера]. [Оценка] B - это агрегат родительского уровня ([DIM]. [Уровень]. [Все], [мера]. [MationCore])
Решение
Я смог решить это с помощью расчета клеток в сочетании с вычислением PassValue:
CELL CALCULATION SDCalc
FOR '([Dim].[Level].[Leaf], [Measures].[SD])'
AS 'CalculationPassValue(([Measures].[Score] - [Measures].[MeanScore])^2, 1)', CONDITION = 'NOT IsEmpty([Measures].[FactCount])'