기본 콘텐츠로 건너뛰기

집계 함수

집계 함수로 알려진 함수 제품군은 여러 필드 값을 입력으로 사용하고 그룹당 단일 결과를 반환하는 함수로 구성됩니다. 여기서 그룹화는 차트 차원 또는 스크립트 문에서 group by 절로 정의됩니다.

집계 함수에는 Sum(), Count(), Min(), Max() 등이 있습니다.

대부분의 집계 함수는 데이터 로드 스크립트와 차트 표현식에서 모두 사용할 수 있지만 구문이 다릅니다.

데이터 로드 스크립트에서 집계 함수 사용

집계 함수는 LOAD SELECT 문 내에서만 사용할 수 있습니다.

차트 표현식에서 집계 함수 사용

집계 함수의 매개 변수는 이러한 내부 집계에 TOTAL 한정자가 포함되어 있지 않는 한 다른 집계 함수를 포함하지 않아야 합니다. 고급 중첩 집계가 필요한 경우는 고급 함수 Aggr을 지정된 차원과 함께 사용하십시오.

집계 함수는 선택에 의해 정의된 사용 가능한 레코드의 집합을 집계합니다. 하지만 집합 분석 시 집합 표현식을 사용하여 대체 레코드 집합을 정의할 수 있습니다.

참조: 집합 분석 및 집합 표현식

집계 계산 방법

집계는 특정 테이블의 레코드를 반복하여 그 안의 레코드를 집계합니다. 예를 들어 Count(<Field>)는 <Field>가 있는 테이블의 레코드 수를 계수합니다. 고유 필드 값만 집계하려는 경우 distinct 절을 사용해야 합니다(예: Count(distinct <Field>)).

집계 함수에 다른 테이블의 필드가 포함된 경우 집계 함수는 필드로 구성된 테이블의 교차곱 레코드를 반복합니다. 이러한 집계 방식을 사용하면 성능이 저하되므로, 특히 대량의 데이터가 있는 경우에는 이러한 집계를 사용하지 않는 것이 좋습니다.

키 필드 집계

집계가 계산되는 방식은 집계에 사용해야 하는 테이블이 명확하지 않아 키 필드를 집계할 수 없음을 의미합니다. 예를 들어 <Key> 필드가 두 테이블을 연결하는 경우 Count(<Key>)는 첫 번째 테이블의 레코드 수를 반환해야 할지 두 번째 테이블의 레코드 수를 반환해야 할지 명확하지 않습니다.

하지만 distinct 절을 사용하면 집계는 잘 정의되고 계산할 수 있습니다.

따라서 distinct 절 없이 집계 함수 내에 키 필드를 사용하는 경우 Qlik Sense가 반환하는 숫자는 의미가 없을 수 있습니다. 해결 방법은 distinct 절을 사용하거나 하나의 테이블에만 있는 키 사본을 사용하는 것입니다.

예를 들어 다음 표에서는 ProductID는 테이블 간의 키입니다.

제품 및 세부 정보 테이블 간의 ProductID 키

Count(ProductID)Products 테이블(제품당 하나의 레코드만 있음 – ProductID가 기본 키임)에서 계산되거나 Details 테이블(제품당 여러 레코드가 있을 가능성이 가장 높음)에서 계산될 수 있습니다. 고유한 제품의 수를 계산하려면 Count(distinct ProductID)를 사용해야 합니다. 특정 테이블의 행 수를 계산하려면 키를 사용하지 않아야 합니다.