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

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 — カラム値に対する式。結果の型は数値データ型、Date、または DateTime です。(U)Int* または Float* または Decimal* または Date または DateTime
  • weight — 数列の要素の重みを持つカラム。重みは値の出現回数です。UInt*
戻り値 指定したレベルの分位点。Float64 または Date または DateTime 正確な重み付き補間分位点を計算する
Query
SELECT quantileExactWeightedInterpolated(n, val) FROM t;
Response
┌─quantileExactWeightedInterpolated(n, val)─┐
│                                       1.5 │
└───────────────────────────────────────────┘
quantileInterpolatedWeightedではなくquantileExactWeightedInterpolatedを優先してください
Query
SELECT
    quantileExactWeightedInterpolated(0.99)(number, 1),
    quantile(0.99)(number),
    quantileInterpolatedWeighted(0.99)(number, 1)
FROM numbers(9)
Response
┌─quantileExactWeightedInterpolated(0.99)(number, 1)─┬─quantile(0.99)(number)─┬─quantileInterpolatedWeighted(0.99)(number, 1)─┐
│                                               7.92 │                   7.92 │                                             8 │
└────────────────────────────────────────────────────┴────────────────────────┴───────────────────────────────────────────────┘
関連項目
最終更新日 2026年6月10日