2014-10-20 2 views
0

범위별로 행을 그룹화 할 olap4j (Mondrian) 쿼리를 작성하려고합니다. 어린이 1 명당 어린이 수와 어린이 수를 가정합니다. 나는 연령 범위에 따라 카드 금액을 합산하기를 원하므로 0-5,5-10,10-15 세에 대한 계산을 할 것입니다. 이것은 olap4j로 할 수 있습니까?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에 따라 치수에 첫 번째 레벨을 정의하기 쉽습니다.

+0

예, 멋진 아이디어입니다.하지만 범위가 동적입니다. 테이블의 범위를 미리 정의하면 트릭을 수행 할 수 없습니다. –

+0

이 경우 쿼리 시간에 생성해야합니다. 동적 인 경우 "많지는 않지만"차원에 여러 개의 그룹을 정의 할 수 있습니다. – nsousa

+0

MDX없이 olap4j API를 사용하면 가능합니까? –

관련 문제