approx_top_k
집계 함수
적용 대상: Databricks SQL Databricks Runtime 10.4 LTS 이상
대략적인 개수와 함께 expr
에서 가장 자주 발생하는 상위 k
항목 값을 반환합니다.
구문
approx_top_k(expr[, k[, maxItemsTracked]]) [FILTER ( WHERE cond ) ]
이 함수는 OVER
절을 사용하여 창 함수로 호출할 수도 있습니다.
인수
expr
: STRING, BOOLEAN, DATE, TIMESTAMP 또는 숫자 형식의 식입니다.k
: 0보다 큰 선택적 INTEGER 리터럴입니다.k
를 지정하지 않으면 기본값은5
입니다.maxItemsTracked
:k
보다 크거나 같은 선택적 INTEGER 리터럴입니다.maxItemsTracked
를 지정하지 않으면 기본값은10000
입니다.cond
: 집계에 사용되는 행을 필터링하는 선택적 부울 식입니다.
반품
결과는 STRUCT 형식의 ARRAY로 반환되며, 여기서 각 STRUCT에는 값에 대한 item
필드(원래 입력 형식 포함) 및 대략적인 발생 횟수가 있는 count
필드(LONG 형식)가 포함됩니다. 배열은 count
내림차순으로 정렬됩니다.
집계 함수는 대략적인 개수와 함께 식 expr
에서 가장 자주 발생하는 상위 k
항목 값을 반환합니다. 각 카운트의 오류는 최대 2.0 * numRows / maxItemsTracked
일 수 있으며 여기서 numRows
는 총 행 수입니다. maxItemsTracked
값이 높을수록 메모리 사용량이 증가하지만 더 나은 정확도를 제공합니다.
고유 항목이 maxItemsTracked
개 미만인 식은 정확한 항목 수를 산출합니다. 결과에는 결과에 자체 항목으로 NULL
값이 포함됩니다.
예제
> SELECT approx_top_k(expr) FROM VALUES (0), (0), (1), (1), (2), (3), (4), (4) AS tab(expr);
[{'item':4,'count':2},{'item':1,'count':2},{'item':0,'count':2},{'item':3,'count':1},{'item':2,'count':1}]
> SELECT approx_top_k(expr, 2) FROM VALUES 'a', 'b', 'c', 'c', 'c', 'c', 'd', 'd' AS tab(expr);
[{'item':'c','count',4},{'item':'d','count':2}]
> SELECT approx_top_k(expr, 10, 100) FROM VALUES (0), (1), (1), (2), (2), (2) AS tab(expr);
[{'item':2,'count':3},{'item':1,'count':2},{'item':0,'count':1}]