olap4J - расчеты по группировке членов
Я пытаюсь написать запрос olap4j (Mondrian), который сгруппирует строки по диапазонам. Предположим, у нас есть количество карточек на ребенка и возраст детей. Я хочу суммировать количество карт по возрастным диапазонам, поэтому у меня будет счет в возрасте 0-5,5-10,10-15 и так далее. Это можно сделать с помощью olap4j?
1 ответ
Для этого вам нужно определить вычисляемые члены:
With member [Age].[0-4] as [Age].[0]:[Age].[4]
member [Age].[5-9] as [Age].[5]:[Age].[9]
и т.п.
В качестве альтернативы вы можете изменить дизайн таблицы измерений. Я предполагаю, что у вас есть возраст как вырожденное измерение в таблице фактов. Я предлагаю создать отдельное измерение dim_age с такой структурой:
age_id, age, age_group
0, null, null
1, 0, 0-4
2, 1, 0-4
(...)
Тогда легко определить первый уровень в измерении на основе age_group.