집계 함수를 사용한 중첩 집계
TOTAL을 사용한 중첩만으로는 충분치 않을 때가 있습니다. 더 일반적인 중첩 기능을 위해서는 고급 집계 함수를 계산된 차원과 함께 사용해야 합니다.
스크립트에서 다음과 같은 데이터가 로드되었습니다.
이 데이터로 볼 때 확실히 답을 알 수 있는 질문은 "각 영업 담당자가 보유한 고객은 몇 명입니까?"입니다.
일반QlikView표를 사용하면 이 질문에 쉽게 응답할 수 있습니다.
방금 얻은 정보를 바탕으로 몇 가지 새로운 질문이 떠오를 수 있습니다. "고객이 한 명 뿐인 영업 담당자는 몇 명입니까? 세 명 이상의 고객을 보유한 영업 담당자는 몇 명입니까?"
이 사례는 간단하기 때문에 표현식에 있는 열을 손으로도 셀 수 있다는 점을 무시한다면 이러한 유형의 질문을 해결하기 위해 이차적 집계가 필요합니다. 계산에 필요한 데이터는 기존 필드에 없으며 기존 필드에서 직접 계산할 수도 없습니다.
위 차트의 표현식 열을 새 차트의 차원으로 사용하는 방법을 찾아야 합니다. 고급 집계 함수를 사용하면 이를 달성할 수 있습니다.
첫 번째 차트의 계산을 새 차트의 내부 차트 계산으로 수행하려면 차원에 대해 다음 문을 사용해야 합니다.
=Aggr(Count(Customer),SalesRep)
그 다음 새 차트에 다음 표현식을 입력합니다.
Count(Distinct SalesRep)
QlikView는 원본 테이블에서 줄 수를 계수하므로 DISTINCT 한정자가 필수입니다.
결과 테이블은 "1, 2, 3명의 고객을 보유한 영업 담당자가 몇 명입니까?"라는 질문에 대한 답입니다.
두 가지 사항을 유의해야 합니다.
- 두 번째 차트에는 첫 번째 차트가 필요하지 않습니다. 이 차트는 차원 내에 정의된 일차 집계로 가득 채워져 있습니다.
- 중첩의 가능성은 여기에서 끝나지 않습니다. 고급 집계 함수의 차원 인수는 계산된 차원을 포함하므로 당연히 고급 집계 함수를 활용하게 됩니다. 그러나 세 번째 수준의 집계를 진행할 때 현재 작업에 대한 정보를 놓치기 쉽습니다.