기본적으로 집계 함수는 선택에 의해 정의된 사용 가능한 레코드의 집합을 집계합니다. 집합 분석 표현식으로 대체 레코드 집합을 정의할 수 있습니다.
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일 수 있습니다.
Ordering 유형은 다음과 같이 각 Sort-type과 연결됩니다.
허용되는 Ordering 유형
Sort-type
허용되는 Ordering 유형
NUMERIC
ASCENDING, DESCENDING 또는 REVERSE
TEXT
ASCENDING, A2Z, DESCENDING, REVERSE 또는 Z2A
FREQUENCY
DESCENDING, REVERSE 또는 ASCENDING
LOAD_ORDER
ASCENDING, ORIGINAL, DESCENDING 또는 REVERSE
Ordering 유형 REVERSE와 DESCENDING은 동일합니다.
Sort-type TEXT의 경우 Ordering 유형 ASCENDING과 A2Z가 동일하고, DESCENDING, REVERSE 및 Z2A가 동일합니다.
Sort-type LOAD_ORDER의 경우 Ordering 유형 ASCENDING과 ORIGINAL이 동일합니다.
예: Aggr을 사용한 차트 표현식
차트 표현식 예 1
로드 스크립트
데이터 로드 편집기에서 다음 데이터를 인라인 로드로 로드하여 아래 차트 표현식 예를 만듭니다.
값의 배열은 16, 16, 15, 15, 12, 12, 22, 22, 25, 15, 15 및 19입니다. nodistinct 한정자는 배열이 소스 데이터의 각 행에 대해 하나의 요소를 포함하고 있음을 의미합니다. 각각은 각 Customer 및 Product에 대한 최대 UnitPrice입니다.
차트 표현식 예 3
로드 스크립트
데이터 로드 편집기에서 다음 데이터를 인라인 로드로 로드하여 아래 차트 표현식 예를 만듭니다.
Set vNumberOfOrders = 1000;
OrderLines:
Load
RowNo() as OrderLineID,
OrderID,
OrderDate,
Round((Year(OrderDate)-2005)*1000*Rand()*Rand()*Rand1) as Sales
While Rand()<=0.5 or IterNo()=1;
Load * Where OrderDate<=Today();
Load
Rand() as Rand1,
Date(MakeDate(2013)+Floor((365*4+1)*Rand())) as OrderDate,
RecNo() as OrderID
Autogenerate vNumberOfOrders;
Calendar:
Load distinct
Year(OrderDate) as Year,
Month(OrderDate) as Month,
OrderDate
Resident OrderLines;
차트 표현식
Year와 Month가 차원으로 포함된 Qlik Sense 시트에 테이블 시각화를 만듭니다. 테이블에 다음 표현식을 측정값으로 추가합니다.
이 예에서는 각 연도에 대해 12개월 동안 집계된 값을 시간 오름차순으로 표시하므로 구조화된 매개 변수(숫자, 오름차순)는 Aggr() 표현식의 일부입니다. 구조화된 매개 변수로 두 가지 특정 차원이 필요합니다. Year 및 Month, 정렬된 (1) Year(숫자) 및 (2) Month(숫자)입니다. 이 두 차원은 테이블 또는 차트 시각화에서 사용해야 합니다. 이를 통해 Aggr() 함수의 차원 목록이 시각화에 사용된 개체의 차원과 일치할 수 있습니다.