Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantileExactWeightedInterpolated

quantileExactWeightedInterpolated

導入バージョン: v24.10.0

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

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

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

quantileExactWeightedInterpolatedquantileInterpolatedWeighted よりも高精度であるため、quantileInterpolatedWeighted ではなく quantileExactWeightedInterpolated を使用することを強く推奨します。 詳細については、以下の例を参照してください。

構文

quantileExactWeightedInterpolated(level)(expr, weight)

別名: medianExactWeightedInterpolated

パラメータ

  • 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*

戻り値

指定したレベルの分位点。数値引数は Float64 を返し、DecimalDateDateTimeDateTime64 型の引数は入力フォーマットを維持します。Float64 または 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 quantileExactWeightedInterpolated(n, val) FROM t;
┌─quantileExactWeightedInterpolated(n, val)─┐
│                                       1.5 │
└───────────────────────────────────────────┘

quantileInterpolatedWeightedではなくquantileExactWeightedInterpolatedを優先してください

SELECT
    quantileExactWeightedInterpolated(0.99)(number, 1),
    quantile(0.99)(number),
    quantileInterpolatedWeighted(0.99)(number, 1)
FROM numbers(9)
┌─quantileExactWeightedInterpolated(0.99)(number, 1)─┬─quantile(0.99)(number)─┬─quantileInterpolatedWeighted(0.99)(number, 1)─┐
│                                               7.92 │                   7.92 │                                             8 │
└────────────────────────────────────────────────────┴────────────────────────┴───────────────────────────────────────────────┘

関連項目

Navigation