如何在MDX中使用中值功能?

时间:2019-04-15 05:25:27

标签: ssas mdx median

我有一个SQL Server Analysis Services多维数据集(多维)。此多维数据集代表调查反馈。学生针对给定学期(时间段)的课程提供反馈。有19个问题的分数为1到5,我尝试获取这些答案的中位数。 确切地说,我只是查看一段时间(学期)中每个{Question,Course}的答案中位数。

我的多维数据集模型如下所示: model

我正在运行的查询是:

with calculated member [Median] as
MEDIAN(existing NONEMPTY([Course].[COURSE NAME].children*[Survey 
Question].[SURVEY QUESTION NUMBER].children),[Measures].[NUMERIC 
RESPONSE])


Select non EMPTY{[Course].[COURSE NAME].children} on rows,
NON EMPTY{[Survey Question].[SURVEY QUESTION NUMBER].children*{[Measures]. 
[NUMERIC RESPONSE],[Median]}} on columns
from [EDW]
where [Term].[TERM].&[5515]

结果在Median上不显示任何内容,就好像它为null。 如果有人对这个问题有想法,我很乐意听到。

致谢

Vincent

1 个答案:

答案 0 :(得分:0)

这是您的查询,有一些小的更改-遗憾的是之前没有使用过Median,而且我没有AdvWks可以进行测试,因此在黑暗中感觉有点:

WITH
MEMBER [Measures].[MYMedian] AS
  MEDIAN(
    NONEMPTY(
        [Course].[COURSE NAME].[COURSE NAME].MEMBERS
       *[Survey Question].[SURVEY QUESTION NUMBER].[SURVEY QUESTION NUMBER].MEMBERS
       ,[Measures].[NUMERIC RESPONSE]
    )
    ,[Measures].[NUMERIC RESPONSE]
  )
SELECT
NON EMPTY 
[Course].[COURSE NAME].children on rows,
NON EMPTY  
   [Survey Question].[SURVEY QUESTION NUMBER].children
  *{
     [Measures].[NUMERIC RESPONSE]
    ,[Measures].[MYMedian]
   } 
on columns
FROM [EDW]
WHERE [Term].[TERM].&[5515];