topK
도입 버전: v1.1.0
지정된 컬럼에서 대략적으로 가장 자주 나타나는 값들의 배열을 반환합니다. 결과 배열은 값 자체가 아니라 값의 대략적인 빈도를 기준으로 내림차순 정렬됩니다.
TopK를 분석하기 위해 Parallel Space Saving의 reduce-and-combine 알고리즘을 기반으로 한 Filtered Space-Saving 알고리즘을 구현합니다.
이 함수는 보장된 결과를 제공하지 않습니다. 특정 상황에서는 오차가 발생할 수 있으며, 가장 빈도가 높은 값이 아닌 자주 나타나는 값을 반환할 수 있습니다.
관련 항목
구문
topK(N)(column)
topK(N, load_factor)(column)
topK(N, load_factor, 'counts')(column)매개변수
N— 반환할 요소의 개수입니다. 기본값은 10입니다.N의 최댓값은 65536입니다.UInt64load_factor— 선택 사항입니다. 값을 위해 예약할 cell의 개수를 지정합니다.uniq(column) > N * load_factor이면 topK 함수의 결과는 근사값이 됩니다. 기본값은 3입니다.UInt64counts— 선택 사항입니다. 결과에 근사 개수와 오류 값이 포함될지 여부를 지정합니다.Bool
인수
column— 가장 자주 나타나는 값을 찾을 컬럼의 이름입니다.String
반환 값
대략적인 빈도를 기준으로 내림차순 정렬된, 대략적으로 가장 자주 나타나는 값들의 배열을 반환합니다. Array
예시
사용 예시
SELECT topK(3)(AirlineID) AS res
FROM VALUES('AirlineID UInt32', (19393), (19393), (19393), (19393), (19790), (19790), (19790), (19805), (19805), (20304));┌─res─────────────────┐
│ [19393,19790,19805] │
└─────────────────────┘관련 항목