집합 분석
앱에서 선택하면 데이터에 있는 레코드의 하위 집합을 정의합니다. Sum(), Max(), Min(), Avg() 및 Count()와 같은 집계 함수는 이 하위 집합을 기반으로 계산됩니다.
즉, 선택 내용에 따라 집계 범위가 정의됩니다. 계산이 수행되는 레코드 집합을 정의합니다.
집합 분석은 현재 선택에 의해 정의된 레코드 집합과 다른 범위를 정의하는 방법을 제공합니다. 이 새로운 범위는 대체 선택으로 간주될 수도 있습니다.
이는 현재 선택을 특정 값(예: 작년 값 또는 글로벌 시장 점유율)과 비교하려는 경우에 유용할 수 있습니다.
집합 표현식
집합 표현식은 집계 함수 내부 및 외부에서 사용할 수 있으며 중괄호로 묶입니다.
내부 집합 표현식
Sum( {$<Year={2021}>} Sales )
외부 집합 표현식
{<Year={2021}>} Sum(Sales) / Count(distinct Customer)
내부 및 외부 집합 표현식에 대한 자세한 내용은 내부 및 외부 집합 표현식을 참조하십시오.
집합 표현식은 다음 요소의 조합으로 구성됩니다.
-
Identifiers. 집합 식별자는 다른 곳에서 정의된 선택을 나타냅니다. 또한 데이터의 특정 레코드 집합을 나타냅니다. 현재 선택, 북마크에서 선택 또는 대체 상태에서 선택일 수 있습니다. 단순한 집합 표현식은 현재 선택 내용에 포함된 모든 레코드를 의미하는 달러 기호, {$} 등과 같은 하나의 식별자로 구성됩니다.
예: $, 1, BookMark1, State2
참조: 집합 식별자
-
Operators. 집합 연산자를 사용하여 서로 다른 집합 식별자 간의 합집합, 차집합 또는 교집합을 만들 수 있습니다. 이렇게 하면 집합 식별자로 정의된 선택 내용의 하위 집합 또는 상위 집합을 만들 수 있습니다.
예: +, -, *, /
참조: 집합 연산자
-
Modifiers. 집합 식별자에 집합 수정자를 추가하여 선택을 변경할 수 있습니다. 수정자는 자체적으로 사용할 수도 있으며 기본 식별자를 수정합니다. 수정자는 꺾쇠 괄호 <…>로 묶어야 합니다.
예: <Year={2020}>, <Supplier={ACME}>
참조: 집합 수정자
요소가 결합되어 집합 표현식을 형성합니다.
예를 들어 위의 집합 표현식은 집계 Sum(Sales)에서 작성됩니다.
첫 번째 피연산자는 현재 선택에 대한 2021년의 판매량을 반환합니다. 이는 $ 집합 식별자와 2021년의 선택을 포함하는 수정자로 표시됩니다. 두 번째 피연산자는 Sweden에 대해 Sales를 반환하고 1 집합 식별자로 표시되는 현재 선택을 무시합니다.
마지막으로 표현식은 + 집합 연산자로 표시된 대로 두 집합 피연산자 중 하나에 속하는 레코드로 구성된 집합을 반환합니다.
전체 구문 설명은 집합 표현식의 구문을 참조하십시오.
예
위의 집합 표현식 요소를 결합하는 예는 다음 항목에서 사용할 수 있습니다.
다른 표현을 시도하려면 자습서 - 집합 표현식 만들기를 참조하십시오.
자연적 집합
일반적으로 집합 표현식은 데이터 모델의 레코드 집합과 이 데이터 하위 집합을 정의하는 선택 내용을 모두 나타냅니다. 이 경우 집합을 자연적 집합이라고 합니다.
집합 수정자가 있든 없든 집합 식별자는 항상 자연적 집합을 나타냅니다.
그러나 집합 연산자를 사용하는 집합 표현식은 레코드의 하위 집합을 나타내기도 하지만 일반적으로 필드 값 선택을 사용하여 설명할 수는 없습니다. 이러한 표현은 비자연적 집합입니다.
예를 들어 {1-$}에 의해 제공된 집합이 항상 선택 내용으로 정의될 수는 없습니다. 따라서 자연적 집합이 아닙니다. 이는 다음 데이터를 로드하고 테이블에 추가한 다음 필터 창을 사용하여 선택하여 표시할 수 있습니다.
Load * Inline
[Dim1, Dim2, Number
A, X, 1
A, Y, 1
B, X, 1
B, Y, 1];
Dim1 및 Dim2에 대해 선택하면 다음 표에 표시된 보기가 표시됩니다.
첫 번째 측정값의 집합 표현식은 {$}로 선택한 내용에 해당하는 자연적 집합을 사용합니다.
두 번째 측정값은 다릅니다. {1-$}를 사용합니다. 이 집합에 해당하는 선택은 불가능하므로 비자연적 집합입니다.
이러한 구분은 다음과 같은 여러 가지 결과가 생성됩니다.
-
집합 수정자는 집합 식별자에만 적용할 수 있습니다. 임의의 집합 표현식에는 적용할 수 없습니다. 예를 들어 다음과 같은 집합 표현식을 사용할 수 없습니다.
{ (BM01 * BM02) <Field={x,y}> }
여기에서 일반(둥근) 괄호는 집합 수정자가 적용되기 전에 BM01과 BM02 사이의 교차 집합을 평가해야 함을 의미합니다. 그 이유는 수정할 수 있는 요소 집합이 없기 때문입니다.
-
P() 및 E() 요소 함수 내에서 비자연적 집합을 사용할 수 없습니다. 이 함수는 요소 집합을 반환하지만 비자연적 집합에서 요소 집합을 추론하는 것은 불가능합니다.
-
데이터 모델에 많은 테이블이 있는 경우 비자연적 집합을 사용하는 측정값이 항상 올바른 차원 값에 기여하지는 않습니다. 예를 들어, 다음 차트에서 일부 제외된 판매 수가 올바른 Country로 기여하는 반면 다른 경우에는 NULL이 Country로 포함됩니다.
할당이 올바르게 수행되었는지 여부는 데이터 모델에 따라 다릅니다. 이 경우 선택에서 제외된 국가에 해당하는 번호는 할당할 수 없습니다.
식별자 | 설명 |
---|---|
1 | 선택 내용과 관계없이 응용 프로그램에 있는 모든 레코드의 전체 집합을 나타냅니다. |
$ | 현재 선택의 레코드를 나타냅니다. 따라서 집합 표현식 {$}는 집합 표현식을 지정하지 않는 것과 동일합니다. |
$1 | 이전 선택 내용을 나타냅니다. $2는 하나를 제외한 이전 선택 내용을 나타냅니다. |
$_1 | 다음(이후) 선택 내용을 나타냅니다. $_2는 하나를 제외한 다음 선택 내용을 나타냅니다. |
BM01 | 북마크 ID 또는 북마크 이름을 사용할 수 있습니다. |
MyAltState | 상태 이름을 사용하면 대체 상태에서 선택한 내용을 참조할 수 있습니다. |
예 | 결과 |
---|---|
sum ({1} Sales) | 선택 내용은 무시하되 차원은 무시하지 않고 앱에 해당하는 총 판매량을 반환합니다. |
sum ({$} Sales) |
현재 선택의 판매량을 반환하며, sum(Sales)과 동일합니다. |
sum ({$1} Sales) |
이전 선택에 해당하는 판매량을 반환합니다. |
sum ({BM01} Sales) |
BM01이란 이름의 북마크에 해당하는 판매량을 반환합니다. |
예 | 결과 |
---|---|
sum({$<OrderDate = DeliveryDate>} Sales) | OrderDate = DeliveryDate일 때 현재 선택의 판매량을 반환합니다. |
sum({1<Region = {US}>} Sales) |
현재 선택 내용을 무시하고 미국 지역의 판매량을 반환합니다. |
sum({$<Region = >} Sales) |
Region의 선택을 제거하고 선택의 판매량을 반환합니다. |
sum({<Region = >} Sales) |
위 예와 동일한 내용을 반환합니다. 수정할 집합이 생략된 경우 $로 간주됩니다. |
sum({$<Year={2000}, Region={“U*”}>} Sales) | Year 및 Region 모두에 새로운 선택 내용을 적용하여 현재 선택의 판매량을 반환합니다. |