如何计算MDX中二维的平均值

时间:2014-10-31 21:01:52

标签: mdx saas olap-cube

我正在尝试将以下SQL查询转换为我的SSAS多维数据集中的计算成员。

SELECT ActionKey, AVG(1.0 * Days) AS AverageDays
FROM( SELECT ActionKey, UserKey, COUNT(DISTINCT DateKey) AS Days
        FROM [TEST].[dbo].[FactActivity]
        GROUP BY ActionKey, UserKey) a
        GROUP BY ActionKey

如何在MDX中执行此操作?我尝试了以下但是它给了我错误的结果

  

IIF([Measures]。[Dim User Count] = 0,0,[Measures]。[Dim Date   计数] / [测量]。[昏暗的用户数])

在我的立方体中,我有两个派生的度量。 “Dim Date Count”是DimDate表中的行数和“Dim User Count”,它是DimUser表的行数。两者都与多维数据集的其他维度有很多关系,因此我可以轻松地计算出不同的日期和用户。

2 个答案:

答案 0 :(得分:1)

这有效

AVG([用户]。[用户密钥]。[用户密钥],[度量]。[日期计数])

答案 1 :(得分:0)

(不是解决方案,但也许有帮助)

您创建的两项指标是否会产生您期望的结果?如果针对[YourCube]运行以下等效内容,那么新措施[Measures].[AverageDays]是错误的吗?

SELECT 
  NON EMPTY 
    {
      [Measures].[AverageDays]
     ,[Measures].[Dim Date Count]
     ,[Measures].[Dim User Count]
    } ON COLUMNS
 ,NON EMPTY 
    {
        [Action].[Action].MEMBERS
      * 
        [Date].[Calendar].[Month].ALLMEMBERS
    } ON ROWS
FROM  [YourCube];