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이 최대값이에요. UInt64
  • load_factor — 선택 사항. 값에 예약할 셀 수를 정의해요. uniq(column) > N * load_factor이면 topK 함수의 결과는 근사값이 돼요. 기본값: 3. UInt64
  • counts — 선택 사항. 결과에 근사 개수와 오차 값을 포함할지 여부를 정의해요. 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] │
└─────────────────────┘

더 알아보기 (Learn more)