기본 콘텐츠로 건너뛰기 보완적인 콘텐츠로 건너뛰기

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입니다.

각 정렬 유형과 연관된 순서 유형은 다음과 같습니다.

정렬 순서 유형
정렬 유형사용 가능한 순서 유형
NUMERICASCENDING, DESCENDING 또는 REVERSE
TEXTASCENDING, A2Z, DESCENDING, REVERSE 또는 Z2A
FREQUENCYDESCENDING, REVERSE 또는 ASCENDING
LOAD_ORDERASCENDING, ORIGINAL, DESCENDING 또는 REVERSE

Ordering 유형 REVERSEDESCENDING은 동일합니다.

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

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

예 1:  

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

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

사실상 이러한 값이 포함된 명시적 테이블이나 열을 만들지 않고도 임시 값 목록이 만들어졌습니다. 이 값은 판매량의 평균 값 376.6667을 찾기 위해 Avg() 함수에 입력으로 사용됩니다. (속성 패널의 Presentation 아래에서 합계가 선택되어 있어야 합니다.

예 2:  

Aggr(NODISTINCT Max(UnitPrice), Customer)

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

예 3:  

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 '|');

이 페이지가 도움이 되었습니까?

이 페이지 또는 해당 콘텐츠에서 오타, 누락된 단계 또는 기술적 오류와 같은 문제를 발견하면 개선 방법을 알려 주십시오!

분석 현대화 프로그램에 참여

Remove banner from view

분석 현대화 프로그램으로 귀중한 QlikView 앱을 손상시키지 않고 현대화하십시오. 여기를 클릭 하여 자세한 내용을 참조하거나 다음에 연결하십시오. ampquestions@qlik.com