ClickHouse/docs/ja/sql-reference/aggregate-functions/reference/quantileexactweightedinterpolated.md
2024-11-18 11:58:58 +09:00

4.0 KiB
Raw Blame History

slug sidebar_position
/ja/sql-reference/aggregate-functions/reference/quantileExactWeightedInterpolated 176

quantileExactWeightedInterpolated

数値データシーケンスのquantileを線形補間を用いて計算し、各要素の重みを考慮します。

補間値を得るために、渡されたすべての値が配列に結合され、それらの対応する重みによってソートされます。その後、加重パーセンタイル法を使用して重みに基づく累積分布を構築し、重みと値を用いた線形補間を行い、パーセンタイルを計算します。

異なる水準の複数のquantile*関数をクエリ内で使用する場合、内部状態は結合されません(つまり、クエリは可能な限り効率的には動作しません)。この場合、quantiles関数を使用してください。

quantileInterpolatedWeightedよりもquantileExactWeightedInterpolatedの方が正確なので、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 
└────────────────────────────────────────────────────┴────────────────────────┴───────────────────────────────────────────────┘

構文

quantileExactWeightedInterpolated(level)(expr, weight)

エイリアス: medianExactWeightedInterpolated.

引数

  • level — パーセンタイルのレベル。オプションのパラメータ。0から1の間の定数浮動小数点数。levelの値には [0.01, 0.99] の範囲を使用することをお勧めします。デフォルト値0.5。level=0.5 の場合、この関数は中央値を計算します。
  • expr — 数値データ型Date、またはDateTimeに帰結するカラム値の式。
  • weight — シーケンスメンバーの重みを持つカラム。重みはUnsigned integer型の値の出現回数です。

戻り値

  • 指定されたレベルのパーセンタイル。

型:

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

入力テーブル:

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

結果:

┌─quantileExactWeightedInterpolated(n, val)─┐
│                                       1.5 │
└───────────────────────────────────────────┘

関連項目