我正在尝试在MDX中实现中位数功能。特别是我想计算度量的中位数"金额"对于维度的每个成员" Region"。为此,我首先编写了以下MDX查询:
with member [measures].[X] as median([Regions].members, [measures].[Amount])
select {[Regions].members} on rows,
{[measures].[X]} on columns
from [product]
然而,上述查询将计算平均值"金额"对于" Region"的每个成员;然后返回这些(平均)值的中位数。
为解决这个问题,我使用" Productid"重写了上述查询。为多维数据集的每个产品分配唯一ID的维度:
with member [measures].[X] as median([productid].members, [measures].[Amount])
select {[Regions].members} on rows,
{[measures].[X]} on columns
from [product]
以上查询正确返回了中位数"金额" " Region"的每个成员的值。问题是查询似乎在计算上很昂贵并且它会挂起。我想知道是否有更优雅的解决方案。