2010-05-11 7 views
0

나는 수백만 개의 행을 가진 테이블을 가지고 있습니다. 각 행은 사용자 session을 나타냅니다. 고유하지 않은 user이라는 열이 있습니다. 사용자 당 여러 개의 세션이있을 수 있습니다. Analysis Services를 사용하여 사용자 당 추가 속성을 얻고 싶습니다. 예 : x 분보다 긴 세션을 가진 사용자가 몇 명입니까? 데이터베이스를 변경하지 않고 어떻게 가능합니까? 참고 : 조회 테이블이 없으므로 조회 테이블을 만들 수 없습니다.
현재 내가 얼마나 많은 세션이 x 분 더 오래되었는지 물어볼 수 있습니다.정규화되지 않은 테이블이있는 분석 서비스

답변

0

내가 생각했던 것보다 훨씬 간단했다. 사용자에게 고유 카운트가있는 측정 값을 추가하면 문제가 해결됩니다.

1

이 테이블 위에 Analysis Services 큐브가 이미 있습니까? 그렇게하면 User 열을 Fact Dimension으로 만들고 User 차원을 고유 한 계산의 기초로 사용할 수 있습니다.

이미 어떤 구조로되어 있습니까?

편집 : 당신은 계산을 참조 계산 된 구성원으로 큐브에 그것을 넣어 수

WITH MEMBER UserCount AS Count(Filter([User].[User].[User], [Measures].[YourMeasure] > 10)), 
NON_EMPTY_BEHAVIOR = { [Measures].[YourMeasure] } 
SELECT UserCount ON 0 FROM [Cube] 

: 당신은 사용자의 팩트 차원을 만들었습니다 그래서 OK, MDX는 계산 된 구성원처럼 볼 수 있었다 Visual Studio의 큐브 디자이너 탭.

설정에 따라 "개수"를 "DistinctCount"로 변경해야 할 수 있습니다.

"NON_EMPTY_BEHAVIOR"플래그를 올바르게 설정해야합니다. 세션 길이에 따라 측정 값이 있다고 가정 했습니까?

+0

예, 이미 큐브가 있습니다. 이것은 분석하고자하는 단일 테이블입니다. 팩트 차원을 만들려면 어떻게해야합니까? – Uwe

+0

@Uwe 새로운 치수를 작성하고 사실 테이블을 소스로 사용하십시오. 사용할 속성을 묻는 메시지가 나타나면 관심있는 속성 (사용자)을 선택하십시오. 그것은 당신을 위해 차원 사용 탭 (사실 관계)을 자동으로 수정해야합니다. – Meff

+0

@Meff, 감사합니다. 내가 그거 했어. 결과적으로 각 사용자를 기반으로 한 숫자를 얻을 수있었습니다. 그러나 테이블에 수백만 명의 사용자가 있기 때문에 특정 속성을 특정 값으로 설정 한 사람이 아니라 "얼마나 많은 사람들"인지 알고 싶습니다. 그게 가능하니? – Uwe

관련 문제