2011-10-03 3 views
1

동적 인 평균 측정 값을 작성하는 방법에 대한 조언을 제공합니다. 특정 조각을 지정하지 않고 현재보기를 사용합니까? 프런트 엔드 OLAP 뷰어 (전략 도우미)에서 작업 중이며 현재 데이터보기에서 필터링 된 차원을 기반으로 "동적"구현이 필요합니다.MDX AVG 기능 동적 사용

내 팩트 테이블은 다음과 같이 같습니다. "[측정] [AmountA]"

Key AmountA IndicatorA AmountB Other Data 
1 5  1   null  25 
2 6  1   null  52 
3 7  1   2  106 
4 null  0   4  108 

지금 나는 단순 평균을 지정할 수 있습니다를 들어 "[측정]와 [AmountA]/[대책].. [IndicatorA] - "[IndicatorA]"는 "[AmountA]"의 null이 아닌 값의 수를 합한 것입니다. 또한보기에서 어떤 크기가 선택 되더라도 상관 없습니다. 항상 필터링 된 행 수로 나뉩니다.

[AmountB]는 어떻게됩니까? null 표시기 열이 없습니다. 내 현재보기에서 필터링 된 모든 행에 대해 [AmountB]의 평균값을 얻고 싶습니다. 간단한 수식 (psuedo-code "[Measures]. [AmountB]/Count ([Measures]. [Key])")로 행 수를 사용하려고하면 잘못된 결과를 얻습니다. 평균적으로 널 (null) 행.

그래서 AVG 함수를 사용하여 "현재 사용중인 모든 차원을 기준으로 현재 필터링중인 모든 행"집합에 [AmountB] 평균을 지정하는 방법이 필요합니다. 이 동적 세트는 어떻게 지정합니까?

AVG 기능을 여러 가지 다른 용도로 사용했지만 null을 반환하거나 엄청난 숫자로 요약되었습니다. 분명히 평균이 아닙니다.

답변

0

죄송합니다

고맙다 - 매트, 내 첫 번째 제안은 틀렸다. OLAP 큐브에 액세스 할 수없는 경우이 목적을 위해 mdx- 쿼리를 작성할 수 없습니다 (IMHO). 이 액세스 수준에는 사실 테이블의 세부 데이터가 없기 때문에 큐브의 집계 된 데이터 및 차원 만 사용할 수 있습니다. 그렇지 않으면 (olap db에 액세스 할 수있는 경우) 측정 값 그룹에서이 메트릭 (NULL 행이 아닌 개수)을 만든 다음 AVG 계산에 사용합니다 (큐브의 계산 된 멤버 또는 섹션에서 "WITH"로). 귀하의 mdx- 쿼리).

+0

최대입니다. 지금 제가 찾고있는 것은 {세트}를 동적 세트로 지정하는 방법입니다. 특정 슬라이스가 아니라 현재 OLAP 도구로 필터링중인 모든 세트를 지정하는 것입니다. – user977080

+0

나는이 쿼리를 향상시키고 가까운 미래에 답변을 업데이트하려고 노력할 것입니다. – Max