topK
topK
지정한 컬럼에서 가장 빈번한 값의 근사 배열을 반환하는 집계 함수예요. 결과 배열은 값의 근사 빈도(값 자체가 아니라) 기준 내림차순으로 정렬돼요.
출처: 문서
본문
topK은 지정한 컬럼에서 가장 빈번한 값의 근사 배열을 반환해요. 결과 배열은 값의 근사 빈도(값 자체가 아니라) 기준 내림차순으로 정렬돼요. Parallel Space Saving의 reduce-and-combine 알고리즘에 기반한 Filtered Space-Saving 알고리즘을 구현해 TopK를 분석해요. 이 함수는 보장된 결과를 제공하지 않아요. 특정 상황에서는 오류가 발생해 가장 빈번하지 않은 값을 빈번한 값으로 반환할 수도 있어요.
구문 (Syntax)
topK(N)(column)
topK(N, load_factor)(column)
topK(N, load_factor, 'counts')(column)
매개변수 (Parameters)
N— 반환할 요소의 개수. 기본값: 10.N = 65536이 최대값이에요.UInt64load_factor— 선택 사항. 값에 예약할 셀 수를 정의해요.uniq(column) > N * load_factor이면 topK 함수의 결과는 근사값이 돼요. 기본값: 3.UInt64counts— 선택 사항. 결과에 근사 개수와 오차 값을 포함할지 여부를 정의해요.Bool
인자 (Arguments)
column— 가장 빈번한 값을 찾을 컬럼의 이름.String
반환 값 (Returned value)
근사 빈도 기준 내림차순으로 정렬된 가장 빈번한 값의 배열. Array
예제 (Examples)
사용 예시
쿼리:
SELECT topK(3)(AirlineID) AS res
FROM VALUES('AirlineID UInt32', (19393), (19393), (19393), (19393), (19790), (19790), (19790), (19805), (19805), (20304));
응답:
┌─res─────────────────┐
│ [19393,19790,19805] │
└─────────────────────┘