メインコンテンツへスキップ
メインコンテンツへスキップ

topK

指定されたカラム内で、おおよそ最も頻出する値の配列を返します。返される配列は、値そのものではなく、値の概算出現頻度の降順にソートされます。

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 = 65536 が最大値です。

パラメータ

  • N — 返す要素数。省略可能。デフォルト値: 10。
  • load_factor — 値のために予約されるセル数を指定します。もし uniq(column) > N * load_factor の場合、topK 関数の結果は近似値になります。省略可能。デフォルト値: 3。
  • counts — 結果に概算カウントと誤差値を含めるかどうかを指定します。

引数

  • column — 出現頻度を計算する対象の値。

OnTime データセットを使用し、AirlineID カラムにおいて最も頻繁に出現する値を 3 つ取得します。

SELECT topK(3)(AirlineID) AS res
FROM ontime
┌─res─────────────────┐
│ [19393,19790,19805] │
└─────────────────────┘

関連項目