aggregate 함수

적용 대상:검사 예 Databricks SQL 검사 예 Databricks Runtime으로 표시됨

사용자 지정 집계를 사용하여 배열의 요소를 집계합니다. 이 함수는 reduce 함수의 동의어입니다.

구문

aggregate(expr, start, merge [, finish])

인수

  • expr: ARRAY 식입니다.
  • start: 모든 형식의 초기 값입니다.
  • merge: 현재 요소를 집계하는 데 사용되는 람다 함수입니다.
  • finish: 집계를 완료하는 데 사용되는 선택적 람다 함수입니다.

반환

결과 형식은 또는 startfinish 있는 경우 람다 함수의 결과 형식과 일치합니다.

배열의 초기 상태와 모든 요소에 식을 적용하고 이를 단일 상태로 줄입니다. 최종 상태는 함수를 적용하여 최종 결과로 변환됩니다 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