MDX-запрос для подсчета количества строк, соответствующих определенному условию (самая новая строка для каждого вопроса, группа клиентов) - PullRequest
1 голос
/ 18 декабря 2010

У меня есть следующая таблица фактов:

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

Содержит историю ответов клиента на некоторые вопросы. Самый большой response_history_id для каждой комбинации client_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 голосов
/ 19 декабря 2010

К вашему сведению: поскольку этот вопрос был перекрестно опубликован здесь , я разместил ответ там.

...