집계 함수
합계·평균·개수·최소·최대 등 값 필드의 집계 함수 설정 및 UI·API 변경 방법입니다.
집계 함수는 행·열로 묶인 그룹마다 측정값을 어떻게 집계할지 정합니다.
값 필드를 행·열에 배치하는 방법은 필드 구성을 참고하세요.
어디에 지정하나요
| 위치 | 속성 | 역할 |
|---|---|---|
Cube schema.measures | aggregate (필수) | 측정값의 기본 집계 |
Book fields.values | aggregate | 피벗 값 필드의 집계. 생략 시 'sum' |
// Cube — 측정값 기본 집계
measures: [
{ name: '판매수량', type: 'f64', aggregate: 'sum' },
{ name: '차량가격', type: 'f64', aggregate: 'avg' },
]
// Book — 값 필드에서 덮어쓰기
fields: {
rows: ['국가'],
values: [
{ name: '판매수량', aggregate: 'sum' },
{ name: '평균가격', measure: '차량가격', aggregate: 'avg' },
],
}동일한 측정값에 여러 집계 함수를 적용하려면 값 필드의 name과 measure를 분리하여 설정합니다. 자세한 예는 필드 구성을 참고하세요.
집계 함수 목록
PivotAggregationType에 정의된 값입니다. UI 라벨은 화면에 표시되는 이름입니다.
| 값 | UI 라벨 |
|---|---|
sum | 합계 |
avg | 평균 |
min | 최소값 |
max | 최대값 |
count | 개수 |
distinct | 고유수 |
product | 곱 |
stdev | 표본표준편차 |
stdevp | 표준편차 |
var | 표본분산 |
varp | 분산 |
first | 첫째값 |
last | 마지막값 |
p25 | 25백분위수 |
p50 | 50백분위수 |
p75 | 75백분위수 |
큐브 측정값의 aggregate에도 위와 같은 값을 사용할 수 있습니다. (데이터와 큐브)
Book 설정에 넣을 때
createControl / book.load에 전달하는 설정 객체의 values[].aggregate 속성에는 다음 항목만 지정할 수 있습니다.
sum · avg · min · max · count · distinct
표준편차·백분위수 등은 화면 메뉴나 API를 통해 변경하여 사용하세요.
측정값 타입과 제약
measure type | 권장 집계 |
|---|---|
f64 · i32 | sum, 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를 참고하세요.