Ssas 使用求和除以非空计数和MDX求平均值

Ssas 使用求和除以非空计数和MDX求平均值,ssas,mdx,Ssas,Mdx,我知道这应该很容易,但我对MDX还不熟悉,很难把它做好。我的目标是获得特定客户的平均订单成本,包括该客户在层次结构中的子客户。如果我想计算零美元订单,我可以使用下面的MDX正确地得到平均值,但我没有(它们实际上显示为空,而不是零,但不用担心)。那么,如何更新查询,使其只查看非空的OrderCost值呢?最后一行是失败的尝试 WITH MEMBER avgcost as ([Measures].[OrderCost]/[Measures].[OrderCount]) SELECT avgcost

我知道这应该很容易,但我对MDX还不熟悉,很难把它做好。我的目标是获得特定客户的平均订单成本,包括该客户在层次结构中的子客户。如果我想计算零美元订单,我可以使用下面的MDX正确地得到平均值,但我没有(它们实际上显示为空,而不是零,但不用担心)。那么,如何更新查询,使其只查看非空的OrderCost值呢?最后一行是失败的尝试

WITH MEMBER avgcost as ([Measures].[OrderCost]/[Measures].[OrderCount])
SELECT avgcost on columns,
[Dim User].[User ID].&[381] on rows
from [OrdersCube]
//where Filter([Dim User].[User ID].All, [Measures].[OrderCost].Value <> "")
成员avgcost为([Measures].[OrderCost]/[Measures].[OrderCount])
选择列上的avgcost,
行上的[Dim User].[User ID]和[381]
从[OrdersCube]
//其中筛选器([Dim User].[User ID]。所有[Measures].[OrderCost]。值“”)

您是否考虑过使用
Avg()
功能?默认情况下,它忽略空单元格。您需要构造一个集合来描述要平均的单个订单(而不是一个用户的聚合订单成本)。例如:

WITH MEMBER avgcost as Avg([Orders].Members, [Measures].[OrderCost])
SELECT 
    avgcost on columns,
    [Dim User].[User ID].&[381] on rows
from [OrdersCube]
请参阅此处的文档: