다음을 통해 공유


집계 함수 사용

차원을 사용하여 측정값을 조각화하면 해당 차원에 포함된 계층을 따라 측정값이 요약됩니다. 합계 동작은 측정값에 지정된 집계 함수에 따라 달라집니다. 숫자 데이터를 포함하는 대부분의 측정값의 경우 집계 함수는 .입니다 Sum. 측정값은 활성 상태인 계층의 수준에 따라 서로 다른 금액으로 합산됩니다.

Analysis Services에서 만드는 모든 측정값은 측정값의 작업을 결정하는 집계 함수에 의해 지원됩니다. 미리 정의된 집계 형식에는 Sum,, Min, MaxCount고유 개수 및 기타 몇 가지 더 특수화된 함수가 포함됩니다. 또는 복잡하거나 사용자 지정 수식에 따라 집계가 필요한 경우 미리 빌드된 집계 함수를 사용하는 대신 MDX 계산을 빌드할 수 있습니다. 예를 들어 백분율 값에 대한 측정값을 정의하려면 계산된 측정값을 사용하여 MDX에서 이 작업을 수행합니다. CREATE MEMBER 문(MDX)을 참조하세요.

큐브 마법사를 통해 만든 측정값에는 측정값 정의의 일부로 집계 형식이 할당됩니다. 집계 형식은 항상 Sum원본 열에 숫자 데이터가 포함되어 있다고 가정합니다. Sum 는 원본 열의 데이터 형식에 관계없이 할당됩니다. 예를 들어 큐브 마법사를 사용하여 측정값을 만들고 팩트 테이블의 모든 열을 끌어온 경우, 원본이 날짜 시간 열일지라도 결과 측정값이 모두 Sum의 집계를 가지고 있음을 알 수 있습니다. 항상 사전 할당된 집계 메서드에서 마법사를 통해 만든 측정값을 검토하여 집계 함수가 적합한지 확인합니다.

큐브 정의, SQL Server Data Tools - Business Intelligence 또는 MDX를 통해 집계 메서드를 할당하거나 변경할 수 있습니다. 추가 지침은 다차원 모델 또는 집계(MDX)에서 측정값 및 측정값 그룹 만들기를 참조하세요.

집계 함수

Analysis Services는 측정값 그룹에 포함된 차원을 따라 측정값을 집계하는 함수를 제공합니다. 집계 함수의 가산성은 측정값이 큐브의 모든 차원에 대해 집계되는 방법을 결정합니다. 집계 함수는 다음 세 가지 수준의 가산성으로 구분됩니다.

첨가물
완전 가산 측정값이라고도 하는 가산 측정값은 제한 없이 측정값을 포함하는 측정값 그룹에 포함된 모든 차원을 따라 집계할 수 있습니다.

반가산적
반가산적 측정값은 측정값이 포함된 측정값 그룹에 포함된 일부 차원(전부는 아님)을 따라 집계할 수 있습니다. 예를 들어 인벤토리에 사용할 수 있는 수량을 나타내는 측정값은 지리 차원을 따라 집계하여 모든 웨어하우스에 사용할 수 있는 총 수량을 생성할 수 있지만 측정값은 사용 가능한 수량의 주기적인 스냅샷을 나타내므로 시간 차원을 따라 집계할 수 없습니다. 시간 차원을 따라 이러한 측정값을 집계하면 잘못된 결과가 생성됩니다. 자세한 내용은 반가산적 동작 정의를 참조하세요.

비가산적
측정값이 포함된 측정값 그룹의 어느 차원에서도 비가산 측정값을 집계할 수 없습니다. 대신 측정값을 나타내는 큐브의 각 셀에 대해 측정값을 개별적으로 계산해야 합니다. 예를 들어, 수익률과 같은 백분율을 반환하는 계산된 측정값은 어떤 차원에서도 자식 멤버의 백분율 값에서 집계할 수 없습니다.

다음 표에서는 Analysis Services의 집계 함수를 나열하고 함수의 가산성 및 예상 출력을 모두 설명합니다.

집계 함수 가산성 반환된 값
Sum 첨가물 모든 자식 멤버에 대한 값의 합계를 계산합니다. 기본 집계 함수입니다.
Count 첨가물 모든 자식 멤버의 수를 검색합니다.
Min 반가산적 모든 자식 멤버에 대해 가장 낮은 값을 검색합니다.
Max 반가산적 모든 자식 멤버에 대해 가장 높은 값을 검색합니다.
DistinctCount 비가법적 모든 고유한 자식 멤버의 수를 검색합니다. 자세한 내용은 다음 섹션에서 고유 개수 측정값 정보를 참조하세요.
None 비가산적인 집계는 수행되지 않으며, 차원의 리프 멤버 및 비리프 멤버에 대한 모든 값은 측정값이 포함된 측정값 그룹의 팩트 테이블에서 직접 제공됩니다. 멤버에 대한 팩트 테이블에서 값을 읽을 수 없는 경우 해당 멤버의 값은 null로 설정됩니다.
ByAccount 반가산적 계정 차원의 멤버에 대한 계정 유형에 할당된 집계 함수에 따라 집계를 계산합니다. 측정값 그룹에 계정 유형 차원이 없으면 집계 함수로 None 처리됩니다.

계정 차원에 대한 자세한 내용은 부모-자식 유형 차원의 재무 계정 만들기를 참조하세요.
AverageOfChildren 부분 가산적 비어 있지 않은 모든 자식 멤버의 값 평균을 계산합니다.
FirstChild 준가산적 첫 번째 자식 멤버의 값을 검색합니다.
LastChild 반가산적 마지막 자식 멤버의 값을 검색합니다.
FirstNonEmpty 반가산적 비어있지 않은 첫 번째 자식 멤버의 값을 검색합니다.
LastNonEmpty 세미애디티브 (반가산적) 비어있지 않은 마지막 자식 멤버의 값을 검색합니다.

고유 개수 측정에 대한 정보

Aggregate 함수 속성 값이 Distinct Count인 측정값을 고유 개수 측정값이라고 부릅니다. 고유 개수 측정값을 사용하여 팩트 테이블에서 차원의 최하위 수준 멤버 발생 횟수를 계산할 수 있습니다. 개수는 고유하기 때문에 멤버가 여러 번 발생하는 경우 한 번만 계산됩니다. 고유 개수 측정값은 항상 전용 측정값 그룹에 배치됩니다. 고유한 개수 측정값을 자체 측정값 그룹에 배치하는 것은 성능 최적화 기술로 디자이너에 기본 제공되는 모범 사례입니다.

고유 개수 측정값은 일반적으로 차원의 각 멤버에 대해, 다른 차원의 고유하고 가장 낮은 수준의 멤버들이 팩트 테이블에서 몇 개의 행을 공유하는지를 결정하는 데 사용됩니다. 예를 들어 Sales 큐브에서 각 고객 및 고객 그룹에 대해 구매한 고유 제품은 몇 개입니까? 즉, Customers 차원의 각 멤버에 대해 팩트 테이블에서 Products 차원의 고유하고 가장 낮은 수준의 멤버가 행을 공유하는 개수는 얼마입니까? 또는 예를 들어 인터넷 사이트 방문 큐브에서 각 사이트 방문자 및 사이트 방문자 그룹에 대해 인터넷 사이트에서 방문한 고유 페이지 수는 몇 개인가요? (즉, 사이트 방문자 차원의 각 멤버에 대해 팩트 테이블에서 Pages 차원의 최소 수준 멤버가 행을 공유하는 고유의 개수는 몇 개인가요?) 이러한 각 예제에서 두 번째 차원의 최하위 수준 멤버는 고유 개수 측정값으로 계산됩니다.

이러한 종류의 분석은 2차원으로 제한할 필요가 없습니다. 실제로 특정 개수 측정값은 계산된 멤버를 포함하는 차원을 비롯한 큐브 내의 모든 차원 조합으로 분리 및 잘라낼 수 있습니다.

멤버 수를 계산하는 고유 개수 측정값은 팩트 테이블의 외래 키 열을 기반으로 합니다. 즉, 측정값의 Source Column 속성은 이 열을 식별합니다. 이 열은 고유 개수 측정값으로 계산되는 멤버를 식별하는 차원 테이블 열을 조인합니다.

또한 참조하십시오

측정값 및 측정값 그룹
MDX 함수 참조(MDX)
반가산적 동작 정의