Aggr - 차트 함수

Aggr()은 지정된 차원 전체에서 계산된 표현식의 값 배열을 반환합니다. 예: 고객별, 지역별 판매 최대값. Aggr 함수가 고급 집계에 사용되는 경우 Aggr 함수는 Aggr 함수의 결과 배열을 중첩된 집계의 입력으로 사용하여 다른 집계 함수 안에 포함됩니다.

구문:  

Aggr({SetExpression}[DISTINCT] [NODISTINCT ] expr, StructuredParameter{, StructuredParameter})

반환 데이터 유형: dual

인수:  

인수 설명
expr

집계 함수로 구성된 표현식. 기본적으로 집계 함수는 선택에 의해 정의된 사용 가능한 레코드의 집합을 집계합니다.

StructuredParameter

StructuredParameter는 다음 형식의 차원과 정렬 기준(선택적)으로 구성됩니다. (Dimension(Sort-type, Ordering))

차원은 단일 필드이며 표현식이 될 수 없습니다. 차원은 Aggr 표현식이 계산될 값 배열을 결정하는 데 사용됩니다.

정렬 기준이 포함된 경우 차원에 대해 계산되며 Aggr 함수에 의해 만들어진 값 배열이 정렬됩니다. 이는 정렬 순서가 Aggr 함수가 포함되어 있는 표현식의 결과에 영향을 주는 경우에 중요합니다.

정렬 기준 사용 방법에 대한 자세한 내용은 구조화된 파라메타의 차원에 정렬 기준 추가를 참조하십시오.

SetExpression 기본적으로 집계 함수는 선택에 의해 정의된 사용 가능한 레코드의 집합을 집계합니다. 집합 분석 표현식으로 대체 레코드 집합을 정의할 수 있습니다.
DISTINCT 표현식 인수에 distinct 한정자가 선행하는 경우 또는 아무 한정자도 사용하지 않는 경우 각 차원 값의 조합에서 하나의 반환 값만 생성됩니다. 이는 집계가 구성되는 일반적인 방식이며, 각 차원 값의 고유 조합이 차트에서 한 줄을 이룹니다.
NODISTINCT

표현식 인수에 nodistinct 한정자가 선행하는 경우 원본 데이터 구조에 따라 각 차원 값의 조합에서 2개 이상의 반환 값이 생성될 수 있습니다. 차원이 하나뿐이라면 소스 데이터에 행이 있으므로 aggr 함수는 동일한 요소 수의 배열을 반환합니다.

Sum, Min, Avg 등의 기본 집계 함수는 단일 숫자 값을 반환하며, Aggr() 함수는 다른 집계가 실행될 수 있는 임시 계획 결과 집합(가상 테이블)을 만드는 것과 비교할 수 있습니다. 예를 들어, Aggr() 문에서 고객별 판매량을 합산하여 평균 판매량 값을 계산하고 합산된 결과의 평균을 계산하는 등입니다. Avg(TOTAL Aggr(Sum(Sales), Customer)).

팁: Aggr() 함수를 계산된 차원에서 사용하여 다양한 수준의 중첩 차트 집계를 구성할 수 있습니다.

제한:  

Aggr() 함수의 각 차원은 단일 필드여야 하며 표현식(계산된 차원)이 될 수 없습니다.

구조화된 파라메타의 차원에 정렬 기준 추가

기본 형식인 경우, Aggr 함수 구문의 StructuredParameter 인수는 단일 차원입니다. Aggr(Sum(Sales, Month)) 표현식은 각 달에 대한 총 판매량 값을 찾습니다. 하지만 다른 집계 함수 안에 포함된 경우 정렬 기준을 사용하지 않으면 예기치 않은 결과가 발생할 수 있습니다. 이는 일부 차원이 숫자순이나 사전순 등으로 정렬될 수 있기 때문입니다.

Aggr 함수의 StructuredParameter 인수에서는 표현식의 차원에 대한 정렬 기준을 지정할 수 있습니다. 이 방법으로, Aggr 함수에 의해 생성된 가상 테이블에 정렬 순서를 적용합니다.

StructuredParameter 인수의 구문은 다음과 같습니다.

(FieldName, (Sort-type, Ordering))

구조화된 파라메타는 다음과 같이 중첩할 수 있습니다.

(FieldName, (FieldName2, (Sort-type, Ordering)))

Sort-type은 NUMERIC, TEXT, FREQUENCY 또는 LOAD_ORDER입니다.

각 Sort-type과 연관된 Ordering 유형은 다음과 같습니다.

정렬 유형 허용되는 Ordering 유형
NUMERIC ASCENDING, DESCENDING 또는 REVERSE
TEXT ASCENDING, A2Z, DESCENDING, REVERSE 또는 Z2A
FREQUENCY DESCENDING, REVERSE 또는 ASCENDING
LOAD_ORDER ASCENDING, ORIGINAL, DESCENDING 또는 REVERSE

Ordering 유형 REVERSEDESCENDING은 동일합니다.

Sort-type TEXT의 경우 Ordering 유형 ASCENDINGA2Z이 동일하며 DESCENDING, REVERSEZ2A가 동일합니다.

Sort-type LOAD_ORDER의 경우 Ordering 유형 ASCENDINGORIGINAL이 동일합니다.

예 및 결과:  

결과
Avg(Aggr(Sum(UnitSales*UnitPrice), Customer))

Aggr(Sum(UnitSales*UnitPrice), Customer) 표현식은 Customer별 판매량의 합계 값을 찾고 값의 배열 295, 715, 120을 세 Customer 값에 대해 반환합니다.

사실상 이러한 값이 포함된 명시적 테이블이나 열을 만들지 않고도 임시 값 목록이 만들어졌습니다.

이 값은 판매량의 평균 값 376.6667을 찾기 위해 Avg() 함수에 입력으로 사용됩니다. (속성 패널의 Presentation 아래에서 합계가 선택되어 있어야 합니다.

Aggr(NODISTINCT Max(UnitPrice), Customer)

값 배열은 16, 16, 16, 25, 25, 25, 19, 19입니다. nodistinct 한정자는 소스 데이터의 각 행에 대한 요소가 하나씩 배열에 포함되어 있음을 의미하며 각 요소는 Customer Product의 최대 UnitPrice 입니다.

max(aggr(sum(Customers)-above(Sum(Customers)), (MonthYear,(NUMERIC, ASCENDING))))

표현식에 StructuredParameter 인수의 정렬 기준을 사용한 경우:max(aggr(sum(Customers)-above(Sum(Customers)), (MonthYear,(NUMERIC, ASCENDING))))

정렬 기준을 사용하지 않는 경우 max(aggr(sum(Customers)-above(Sum(Customers)), (MonthYear))) 표현식의 결과는 MonthYear 차원이 정렬되는 방식에 따라 생성됩니다. 원하는 결과를 얻지 못할 수 있습니다.

다음과 같이 정렬 유형 및 순서 지정 유형에 대한 값을 차원에 추가함으로써 구조화된 파라메타에 정렬 기준을 제공합니다. (MonthYear, (NUMERIC, ASCENDING)) 이 경우 NUMERIC 정렬 유형과 ASCENDING 순서 지정 유형에 따라 MonthYear가 숫자순 오름차순으로 정렬됩니다.

여기서, 월 단위로 고객 수가 가장 많이 증가한 달을 찾아볼 수 있습니다. 이는 KPI 시각화 등에서 사용할 수 있습니다.

표현식의 Aggr 부분은 특정 달(MonthYear에서 제공)의 총 고객 수를 이전 달의 총 고객 수와 비교합니다.

차원에 정렬 기준이 사용되었기 때문에((MonthYear,(NUMERIC, ASCENDING))) Aggr은 사전순 오름차순이 아닌 숫자순 오름차순으로 달을 정렬하여 가상 테이블의 연속된 달의 고객 수를 비교합니다.

예제에서 사용된 데이터:

Customer, Product, UnitPrice, UnitSales가 차원으로 포함된 테이블을 만듭니다. 테이블에 표현식을 계수로 추가합니다.

ProductData:

LOAD * inline [

Customer|Product|UnitSales|UnitPrice

Astrida|AA|4|16

Astrida|AA|10|15

Astrida|BB|9|9

Betacab|BB|5|10

Betacab|CC|2|20

Betacab|DD|25|25

Canutility|AA|8|15

Canutility|CC||19

] (delimiter is '|');