MDX查询以计算与特定条件匹配的行数(每个问题,客户端组的最新行)

时间:2010-12-18 06:45:11

标签: mdx

我有以下事实表:

response_history_id     client_id       question_id     answer
1                       1               2               24
2                       1               2               27
3                       1               3               12
4                       1               2               43
5                       2               2               39

它包含客户对某些问题的回答的历史。每个client_id的最大response_history_id,question_id组合是该问题和客户的最新答案。

我想要做的是计算最新答案在特定范围内的客户数量

我有一些方面:

question                associated with question_id  
client                  associated with client_id  
response_history_id     associated with response_history_id  
range                   associated with answer. 0-20 low, 20-40 = medium, >40 is high  

和一些措施:

max_history_id as max(response_history_id)
clients_count  as disticnt count(client_id)

现在,我想按范围对最新答案进行分组:

select
[ranges].members on 0,
{[Measures].[clients_count]} on 1
from (select [question].[All].[2] on 1 from [Cube])

我得到的是:

Measures                All     low     medium  high
clients_count           2       0       2       1

但我想要(而且我无法得到)的是基于最新答案的计算:

Measures                All     low     medium  high
clients_count           2       0       1       1

我理解为什么我的查询没有给出我想要的结果,更多的是用于演示目的。但是我尝试了很多更复杂的MDX查询,但仍然无法获得任何好结果。

另外,我无法从我的事实表中生成静态视图,因为稍后我想通过事实表中的另一列限制搜索,这是时间戳,我的查询最终必须能够获得_的客户端数量在给定时间戳落在特定范围内之前对问题的最新答案。

有人可以帮我吗? 我可以定义其他维度和度量,我正在使用iccube。

1 个答案:

答案 0 :(得分:-1)

仅供参考:由于这个问题已被交叉发布here,我已在那里发布了答案。