首页 > 解决方案 > 如何在 MDX 中使用中值函数?

问题描述

我有一个 SQL Server Analysis Services 多维数据集(多维)。这个立方体代表调查反馈。学生对给定学期(一段时间)的课程提供反馈。有 19 个问题,分数从 1 到 5,我试图得到这些答案的中位数。准确地说,我只在一段时间(术语)内查看每个 {Question, Course} 的答案中位数。

我的立方体模型如下所示: 模型

我正在运行的查询是:

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]

结果在中位数上没有显示任何内容,就好像它为空一样。如果有人对这个问题有任何想法,我很乐意听到。

问候

文森特

标签: ssasmdxmedian

解决方案


这是您的查询,有几个小改动 - 不幸的是,之前没有使用过 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];

推荐阅读