我有以下事实表:
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。