가이드
집계 함수

집계 함수

합계·평균·개수·최소·최대 등 값 필드의 집계 함수 설정 및 UI·API 변경 방법이다.

집계 함수는 행·열로 묶인 그룹마다 측정값을 어떻게 집계할지 정한다.

값 필드를 행·열에 배치하는 방법은 필드 구성을 참고한다.

지정 위치

위치속성역할
Cube schema.measuresaggregate (필수)측정값의 기본 집계
Book fields.valuesaggregate피벗 값 필드의 집계. 생략 시 'sum'
// Cube — 측정값 기본 집계
measures: [
  { name: '판매수량', type: 'f64', aggregate: 'sum' },
  { name: '차량가격', type: 'f64', aggregate: 'avg' },
]
 
// Book — 값 필드에서 덮어쓰기
fields: {
  rows: ['국가'],
  values: [
    { name: '판매수량', aggregate: 'sum' },
    { name: '평균가격', measure: '차량가격', aggregate: 'avg' },
  ],
}

동일한 측정값에 여러 집계 함수를 적용하려면 값 필드의 namemeasure를 분리하여 설정한다. 자세한 예는 필드 구성을 참고한다.

집계 함수 목록

사용할 수 있는 집계 값과 화면에 표시되는 이름은 다음과 같다.

UI 라벨
sum합계
avg평균
min최소값
max최대값
count개수
distinct고유수
product
stdev표본표준편차
stdevp표준편차
var표본분산
varp분산
first첫째값
last마지막값
p2525백분위수
p5050백분위수
p7575백분위수

큐브 측정값의 aggregate에도 위와 같은 값을 사용할 수 있다. (데이터와 큐브)

Book 설정에 넣을 때

createControl / book.load에 전달하는 설정 객체의 values[].aggregate 속성에는 다음 항목만 지정할 수 있다.

sum · avg · min · max · count · distinct

표준편차·백분위수 등은 화면 메뉴나 API를 통해 변경하여 사용한다.

측정값 타입과 제약

measure type권장 집계
f64 · i32sum, avg, min, max 등 대부분
str · date보통 count · distinct (필요 시 first · last)

str / date 타입 측정값에 sum과 같이 적절하지 않은 집계 함수를 지정하면, 집계 시 자동으로 count가 적용된다.

화면에서 바꾸기

값 필드 헤더(또는 컬럼 바의 값 필드) 메뉴를 통해 원하는 집계 함수를 선택할 수 있다. 숫자 측정값(f64 · i32)일 때 메뉴가 활성화된다.

한편, 인스펙터에서 필드를 신규 배치할 경우 기본 집계 함수는 sum으로 지정된다.

API로 바꾸기

const book = control.book;
const table = control.table;
const field = table.fields.getValueField('판매수량');
 
field?.updateOption('aggregate', 'avg');
 
// Undo가 필요하면
book.updateProp(field, 'aggregate', 'sum');

API로 바꿀 수도 있다.

control.table.setAggregate('판매수량', 'avg');

React · Vue 래퍼에서도 동일하게 control을 통해 위 API를 호출한다. 예는 React 개발 가이드 · Vue 개발 가이드를 참고한다.

옵션 변경 규칙은 개발 가이드를, 속성 설명은 PivotValueFieldOptions.aggregate를 참고한다.

See Also