aggregate
기능
적용 대상: Databricks SQL Databricks 런타임
사용자 지정 집계기를 사용하여 배열의 요소를 집계합니다. 이 함수는 reduce 함수의 동의어입니다.
구문
aggregate(expr, start, merge [, finish])
인수
expr
: ARRAY 식입니다.start
: 임의 형식의 초기 값입니다.merge
: 현재 요소를 집계하는 데 사용되는 람다 함수입니다.finish
: 집계를 완료하는 데 사용되는 선택적 람다 함수입니다.
반품
결과 형식은 finish
람다 함수(있는 경우) 또는 start
의 결과 형식과 일치합니다.
배열의 모든 요소와 초기 상태에 식을 적용하고 단일 상태로 줄입니다. finish
함수를 적용하여 최종 상태가 최종 결과로 변환됩니다.
merge
함수는 두 개의 매개 변수를 사용합니다. 첫 번째 매개 변수는 누적기이고, 두 번째 매개 변수는 집계할 요소입니다.
누적기와 결과는 start
형식이어야 합니다.
선택적 finish
함수는 하나의 매개 변수를 사용하여 최종 결과를 반환합니다.
예제
> SELECT aggregate(array(1, 2, 3), 0, (acc, x) -> acc + x);
6
> SELECT aggregate(array(1, 2, 3), 0, (acc, x) -> acc + x, acc -> acc * 10);
60
> SELECT aggregate(array(1, 2, 3, 4),
named_struct('sum', 0, 'cnt', 0),
(acc, x) -> named_struct('sum', acc.sum + x, 'cnt', acc.cnt + 1),
acc -> acc.sum / acc.cnt) AS avg
2.5