> ## 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.

> 精确计算数值数据序列的 分位数，并考虑每个元素的权重。

# quantileExactWeighted

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

引入版本：v1.1.0

精确计算数值数据序列的[分位数](https://en.wikipedia.org/wiki/Quantile)，并考虑每个元素的权重。

为了得到精确值，所有传入的值都会汇总到一个数组中，然后对其进行部分排序。
每个值都会按照其权重进行计数，就像它实际出现了 `weight` 次一样。
该算法使用了哈希表。
因此，如果传入的值经常重复，与 [`quantileExact`](/zh/reference/functions/aggregate-functions/quantileExact#quantileExact) 相比，该函数消耗的 RAM 更少。
你也可以用此函数替代 `quantileExact`，并将权重指定为 1。

如果在一个查询中使用多个级别不同的 `quantile*` 函数，它们的内部状态不会合并 (也就是说，查询的执行效率会低于原本可达到的水平) 。
这种情况下，请使用 [quantiles](/zh/reference/functions/aggregate-functions/quantiles#quantiles) 函数。

**语法**

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

**别名**: `medianExactWeighted`

**参数**

* `level` — 可选。分位数级别。取值为 0 到 1 之间的常量浮点数。建议将 `level` 设在 `[0.01, 0.99]` 范围内。默认值：0.5。当 `level=0.5` 时，该函数计算中位数。[`Float*`](/zh/reference/data-types/float)

**参数**

* `expr` — 基于列值计算的表达式，结果为数值数据类型、Date 或 DateTime。[`(U)Int*`](/zh/reference/data-types/int-uint) 或 [`Float*`](/zh/reference/data-types/float) 或 [`Decimal*`](/zh/reference/data-types/decimal) 或 [`Date`](/zh/reference/data-types/date) 或 [`DateTime`](/zh/reference/data-types/datetime)
* `weight` — 包含序列成员权重的列。权重表示某个值出现的次数。[`UInt*`](/zh/reference/data-types/int-uint)

**返回值**

指定级别的分位数。[`Float64`](/zh/reference/data-types/float) 或 [`Date`](/zh/reference/data-types/date) 或 [`DateTime`](/zh/reference/data-types/datetime)

**示例**

**计算精确加权分位数**

```sql title=Query theme={null}
CREATE TABLE t (
    n Int32,
    val Int32
) ENGINE = Memory;

-- 插入示例数据
INSERT INTO t VALUES
(0, 3),
(1, 2),
(2, 1),
(5, 4);

SELECT quantileExactWeighted(n, val) FROM t;
```

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

**另请参阅**

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