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

중첩 집계

차트 표현식에 포함되는 모든 필드 이름은 정확히 하나의 집계 함수로 둘러싸야 합니다. 집계를 중첩해야 하는 경우 Aggr()을 사용하여 두 번째 집계 수준을 추가할 수 있습니다. Aggr()은 집계 함수를 인수로 포함합니다.

항상 한 수준의 집계 함수

일반적인 에는 다음이 포함될 수 있습니다.

  • 데이터에 100만 개의 레코드
  • 피벗 테이블에 100개의 행
  • 게이지 또는 텍스트 상자에 단일 KPI

크기는 다르지만 세 숫자 모두 여전히 모든 데이터를 나타낼 수 있습니다. 숫자는 서로 다른 집계 수준입니다.

집계 함수는 많은 레코드의 값을 입력으로 사용하고 모든 레코드의 요약으로 볼 수 있는 단일 값으로 축소합니다. 한 가지 제한 사항이 있습니다. 집계 함수는 다른 집계 함수 내에서 사용할 수 없습니다. 일반적으로 모든 필드 참조를 하나의 집계 함수로 정확히 래핑해야 합니다.

다음 표현식이 작동합니다.

  • Sum(Sales)
  • Sum(Sales)/Count(Order Number)

다음 표현식은 중첩 집계이므로 작동하지 않습니다.

  • Count(Sum(Sales))

이에 대한 해결책은 Aggr() 함수의 형태로 제공됩니다. 해당 이름과 달리 집계 함수가 아닙니다. 수학의 행렬과 같은 "다대다" 함수입니다. N 레코드가 있는 테이블을 M 레코드가 있는 테이블로 변환합니다. 값으로 구성된 배열을 반환합니다. 하나의 측정값과 하나 이상의 차원이 있는 가상 일반표로 간주될 수도 있습니다.

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

중첩 집계를 위해 Aggr() 사용

Aggr()은 지정된 하나 또는 여러 차원에서 계산된 표현식에 대한 값의 배열을 반환합니다. 판매량, 고객 및 지역별 최대값을 예로 들 수 있습니다. 고급 집계에서 Aggr() 함수는 중첩된 집계에 대한 입력으로 Aggr() 함수의 결과로 구성된 배열을 사용하는 다른 집계 함수 안에 포함될 수 있습니다.

이 함수를 사용하면 Aggr() 문은 하나 이상의 차원으로 그룹화된 하나의 표현식으로 가상 테이블을 생성합니다. 그런 다음 이 가상 테이블의 결과는 외부 집계 함수가 더 집계할 수 있습니다.

최대 평균 주문 값 계산

차트 표현식에 간단한 Aggr() 문을 사용하겠습니다.

지역 수준에서 전체 척도뿐만 아니라 두 가지 더 복잡한 표현식도 표시하고 싶습니다.

  • 각 지역 내 관리자별 가장 큰 평균 주문 값.
  • 가장 큰 평균 주문 값을 담당하는 관리자.

표준 표현식 Sum(Sales)/Count([Order Number])를 사용하여 각 지역의 평균 주문 값을 쉽게 계산할 수 있습니다.

앱 내의 Nested Aggregations 시트에서 제목이 Aggr() function인 테이블을 찾습니다.

  1. 사용 가능한 Aggr() function 테이블을 선택합니다.
    속성 패널이 열립니다.
  2. 열 추가를 클릭하고 측정값을 선택합니다.
  3. 표현식 기호를 클릭합니다.
    식 편집기를 엽니다.
  4. 다음을 입력합니다. Sum(Sales)/Count([Order Number])
  5. 적용을 클릭합니다.

지역별 평균 주문 값을 보여주는 테이블.

지역별 평균 주문 값을 보여주는 테이블.

팁 메모데이터 형식이 올바른지 확인하는 것이 가장 좋습니다. 이 경우 각 열에서 계산을 나타내도록 레이블을 변경합니다. 통화 값이 있는 열에서 숫자 서식화폐로 변경하고 서식 패턴$ #,##0;-$ #,##0으로 변경합니다.

목표는 각 지역의 가장 큰 평균 주문 값을 검색하는 것입니다. Qlik Sense에서 관리자별로 각 지역의 평균 주문 값을 가져와서 가장 큰 값을 표시하도록 Aggr()을 사용해야 합니다. 관리자별로 각 지역의 평균 주문 값을 가져오려면 Aggr() 문에 다음 차원을 포함해야 합니다.

Aggr(Sum(Sales)/Count([Order Number]), Region, Manager)

이 표현식으로 인해 Qlik Sense는 다음과 같은 가상 테이블을 생성합니다.

관리자별로 각 지역의 평균 주문 값을 보여주는 Aggr() 함수의 가상 테이블.

관리자당 각 지역의 평균 주문 값을 보여 주는 AGGR 함수가 포함된 테이블.

Qlik Sense가 관리자별로 각 지역의 개별 평균 주문 값을 계산할 때 이러한 값 중 가장 큰 값을 찾아야 합니다. Aggr() 함수를 Max()로 래핑하여 이 작업을 수행합니다.

Max(Aggr(Sum(Sales)/Count([Order Number]), Manager, Region))

  1. 열 추가를 클릭하고 측정값을 선택합니다.
  2. 표현식 기호를 클릭합니다.
    식 편집기를 엽니다.
  3. 다음을 입력합니다. Max(Aggr(Sum(Sales)/ Count([Order Number]), Manager, Region))
  4. 적용을 클릭합니다.

관리자별로 지역, 평균 주문 값 및 각 지역의 가장 큰 평균 주문 값을 보여주는 테이블.

관리자별로 지역, 평균 주문 값 및 각 지역의 가장 큰 평균 주문 값을 보여주는 테이블.

지역 수준에서만 모든 관리자의 가장 큰 평균 주문 값을 볼 수 있습니다. 이는 두 가지 복잡한 표현식 중 첫 번째입니다. 다음 요구 사항은 이러한 큰 평균 주문 값을 담당하는 관리자 이름이 해당 값 옆에 표시되도록 하는 것입니다.

이를 위해 이전과 동일한 Aggr() 함수를 사용하지만 이번에는 FirstSortedValue() 함수를 사용합니다. Qlik Sense에서 관리자를 가져오도록 FirstSortedValue() 함수를 사용합니다. 이 함수의 두 번째 부분에 지정된 특정 차원의 경우 다음과 같습니다.

FirstSortedValue(Manager,-Aggr(Sum(Sales)/Count(Order Number), Manager, Region))

팁 메모표현식에서 작지만 매우 중요한 부분이 있습니다. Aggr() 표현식 앞에 빼기 기호를 사용하는 것입니다. FirstSortedValue() 함수 내에 데이터 배열의 정렬 순서를 지정할 수 있습니다. 이 경우 빼기 기호를 사용하면 Qlik Sense에서 가장 큰 값부터 가장 작은 값으로 정렬합니다.
  1. 열 추가를 클릭하고 측정값을 선택합니다.
  2. 표현식 기호를 클릭합니다.
    식 편집기를 엽니다.
  3. 다음을 입력합니다. FirstSortedValue(Manager,-Aggr(Sum(Sales)/ Count([Order Number]), Manager, Region))
  4. 적용을 클릭합니다.

지역, 평균 주문 값 및 각 지역의 가장 큰 평균 주문 값과 해당 주문 값을 담당하는 관리자를 보여주는 테이블.

지역, 평균 주문 값 및 각 지역의 가장 큰 평균 주문 값과 해당 주문 값을 담당하는 관리자를 보여주는 테이블.

자세한 내용은 Aggr를 참조하십시오.

자세한 내용은 FirstSortedValue를 참조하십시오.

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

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