Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantileInterpolatedWeighted

quantileInterpolatedWeighted

導入バージョン: v23.1.0

各要素の重みを考慮し、線形補間を用いて数値データ列の分位点を計算します。

補間値を求めるには、渡されたすべての値を配列にまとめ、対応する重みに基づいてソートします。 その後、重みに基づく累積分布を構築し、weighted percentile method を用いて分位点補間を行います。さらに、重みと値を使った線形補間によって分位点を計算します。

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

構文

quantileInterpolatedWeighted(level)(expr, weight)

別名: medianInterpolatedWeighted

パラメータ

  • level — 任意。分位点のレベルです。0 から 1 までの定数浮動小数点数。level には [0.01, 0.99] の範囲の値を使用することを推奨します。デフォルト値: 0.5。level=0.5 の場合、この関数は中央値を計算します。Float*

引数

  • expr — カラム値に対する式。結果は数値型、DateDateTime、または DateTime64 です。(U)Int* または Int128 または UInt128 または Int256 または UInt256 または Float* または Decimal* または Date または DateTime または DateTime64
  • weight — シーケンス要素の重みを表すカラム。重みは値の出現回数です。UInt*

戻り値

指定したレベルの分位点。数値型では、出力フォーマットは入力フォーマットと一致します。(U)Int* または Int128 または UInt128 または Int256 または UInt256 または Float* または Decimal* または Date または DateTime または DateTime64

補間付きの重み付き分位点を計算する

CREATE TABLE t (
    n Int32,
    val UInt32
) ENGINE = Memory;

INSERT INTO t VALUES (0, 3), (1, 2), (2, 1), (5, 4);

SELECT quantileInterpolatedWeighted(n, val) FROM t;
┌─quantileInterpolatedWeighted(n, val)─┐
│                                    1 │
└──────────────────────────────────────┘

関連項目

Navigation