> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8a08bda2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

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

# quantileExactWeightedInterpolated

<div id="quantileExactWeightedInterpolated">
  ## quantileExactWeightedInterpolated
</div>

導入バージョン: v24.10.0

各要素の重みを考慮しながら、線形補間を用いて数値データの数列の[分位点](https://en.wikipedia.org/wiki/Quantile)を計算します。

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

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

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

**構文**

```sql theme={null}
quantileExactWeightedInterpolated(level)(expr, weight)
```

**別名**: `medianExactWeightedInterpolated`

**パラメータ**

* `level` — オプション。分位点のレベルです。0 から 1 までの定数の浮動小数点数を指定します。`level` の値には `[0.01, 0.99]` の範囲を使用することを推奨します。デフォルト値: 0.5。`level=0.5` の場合、この関数は中央値を計算します。[`Float*`](/ja/reference/data-types/float)

**引数**

* `expr` — カラム値に対する式。結果の型は数値データ型、Date、または DateTime です。[`(U)Int*`](/ja/reference/data-types/int-uint) または [`Float*`](/ja/reference/data-types/float) または [`Decimal*`](/ja/reference/data-types/decimal) または [`Date`](/ja/reference/data-types/date) または [`DateTime`](/ja/reference/data-types/datetime)
* `weight` — 数列の要素の重みを持つカラム。重みは値の出現回数です。[`UInt*`](/ja/reference/data-types/int-uint)

**戻り値**

指定したレベルの分位点。[`Float64`](/ja/reference/data-types/float) または [`Date`](/ja/reference/data-types/date) または [`DateTime`](/ja/reference/data-types/datetime)

**例**

**正確な重み付き補間分位点を計算する**

```sql title=Query theme={null}
SELECT quantileExactWeightedInterpolated(n, val) FROM t;
```

```response title=Response theme={null}
┌─quantileExactWeightedInterpolated(n, val)─┐
│                                       1.5 │
└───────────────────────────────────────────┘
```

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

```sql title=Query theme={null}
SELECT
    quantileExactWeightedInterpolated(0.99)(number, 1),
    quantile(0.99)(number),
    quantileInterpolatedWeighted(0.99)(number, 1)
FROM numbers(9)
```

```response title=Response theme={null}
┌─quantileExactWeightedInterpolated(0.99)(number, 1)─┬─quantile(0.99)(number)─┬─quantileInterpolatedWeighted(0.99)(number, 1)─┐
│                                               7.92 │                   7.92 │                                             8 │
└────────────────────────────────────────────────────┴────────────────────────┴───────────────────────────────────────────────┘
```

**関連項目**

* [median](/ja/reference/functions/aggregate-functions/median)
* [quantiles](/ja/reference/functions/aggregate-functions/quantiles)
