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

quantileInterpolatedWeighted

数値データ列の分位数を、各要素の重みを考慮した線形補間により計算します。

補間値を求めるために、渡されたすべての値を1つの配列にまとめ、その対応する重みに基づいてソートします。次に、重みに基づいて累積分布を構築し、その上で重み付きパーセンタイル法を用いて分位数の補間を行います。このとき、重みと値を用いて線形補間を実行し、分位数を計算します。

1つのクエリ内で複数の quantile* 関数を異なるレベル(分位点)で使用すると、内部状態は結合されません(つまり、そのクエリは本来よりも効率が低くなります)。この場合は、quantiles 関数を使用してください。

構文

quantileInterpolatedWeighted(level)(expr, weight)

Alias: medianInterpolatedWeighted.

引数

  • level — 分位数レベル。省略可能なパラメータ。0 以上 1 以下の定数の浮動小数点数です。level の値には [0.01, 0.99] の範囲を使用することを推奨します。デフォルト値: 0.5。level=0.5 の場合、この関数は中央値を計算します。
  • expr — 列の値に対して評価され、数値データ型Date、または DateTime のいずれかになる式。
  • weight — シーケンス要素の重みを持つ列。重みは値の出現回数を表す数値です。

返される値

  • 指定したレベルの分位数。

型:

  • 数値データ型の入力に対しては Float64
  • 入力値が Date 型の場合は Date
  • 入力値が DateTime 型の場合は DateTime

入力テーブル:

┌─n─┬─val─┐
│ 0 │   3 │
│ 1 │   2 │
│ 2 │   1 │
│ 5 │   4 │
└───┴─────┘

クエリ:

SELECT quantileInterpolatedWeighted(n, val) FROM t

結果:

┌─quantileInterpolatedWeighted(n, val)─┐
│                                    1 │
└──────────────────────────────────────┘

関連項目