Как использовать медианную функцию в MDX? - PullRequest
1 голос
/ 15 апреля 2019

У меня есть куб SQL Server Analysis Services (многомерный).Этот куб представляет обратную связь опроса.Студент дает отзыв о курсе за определенный семестр (период времени).Есть 19 вопросов с оценкой от 1 до 5, и я пытаюсь получить медиану этих ответов.Если говорить точнее, я смотрю на медиану ответа для каждого {Вопроса, курса} только на один период времени (термин).

Моя модель куба выглядит следующим образом: 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]

Результат не показывает ничего по медиане, как если бы он был нулевым.Если у кого-то есть идеи по этому вопросу, я буду рад их услышать.

С уважением,

Винсент

1 Ответ

1 голос
/ 15 апреля 2019

Это ваш запрос с несколькими небольшими изменениями - к сожалению, раньше я не использовал 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];
...