mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-16 03:12:43 +00:00
67 lines
2.2 KiB
Markdown
67 lines
2.2 KiB
Markdown
---
|
||
slug: /zh/sql-reference/aggregate-functions/reference/quantile
|
||
sidebar_position: 200
|
||
---
|
||
|
||
# quantile {#quantile}
|
||
|
||
计算数字序列的近似[分位数](https://en.wikipedia.org/wiki/Quantile)。
|
||
此函数应用[水塘抽样][reservoir sampling] (https://en.wikipedia.org/wiki/Reservoir_sampling),使用高达8192的水塘大小和随机数发生器采样。
|
||
结果是不确定的。要获得精确的分位数,使用 [quantileExact](../../../sql-reference/aggregate-functions/reference/quantileexact.md#quantileexact) 函数。
|
||
当在一个查询中使用多个不同层次的 `quantile*` 时,内部状态不会被组合(即查询的工作效率低于组合情况)。在这种情况下,使用 [quantiles](../../../sql-reference/aggregate-functions/reference/quantiles.md#quantiles) 函数。
|
||
|
||
**语法**
|
||
|
||
``` sql
|
||
quantile(level)(expr)
|
||
```
|
||
|
||
别名: `median`。
|
||
|
||
**参数**
|
||
|
||
- `level` — 分位数层次。可选参数。从0到1的一个float类型的常量。我们推荐 `level` 值的范围为 `[0.01, 0.99]`。默认值:0.5。当 `level=0.5` 时,该函数计算 [中位数](https://en.wikipedia.org/wiki/Median)。
|
||
- `expr` — 求值表达式,类型为数值类型[data types](../../../sql-reference/data-types/index.md#data_types), [Date](../../../sql-reference/data-types/date.md) 或 [DateTime](../../../sql-reference/data-types/datetime.md)。
|
||
|
||
**返回值**
|
||
|
||
- 指定层次的分位数。
|
||
|
||
类型:
|
||
|
||
- [Float64](../../../sql-reference/data-types/float.md) 用于数字数据类型输入。
|
||
- [Date](../../../sql-reference/data-types/date.md) 如果输入值是 `Date` 类型。
|
||
- [DateTime](../../../sql-reference/data-types/datetime.md) 如果输入值是 `DateTime` 类型。
|
||
|
||
**示例**
|
||
|
||
输入表:
|
||
|
||
``` text
|
||
┌─val─┐
|
||
│ 1 │
|
||
│ 1 │
|
||
│ 2 │
|
||
│ 3 │
|
||
└─────┘
|
||
```
|
||
|
||
查询:
|
||
|
||
``` sql
|
||
SELECT quantile(val) FROM t
|
||
```
|
||
|
||
结果:
|
||
|
||
``` text
|
||
┌─quantile(val)─┐
|
||
│ 1.5 │
|
||
└───────────────┘
|
||
```
|
||
|
||
**参见**
|
||
|
||
- [中位数](../../../sql-reference/aggregate-functions/reference/median.md#median)
|
||
- [分位数](../../../sql-reference/aggregate-functions/reference/quantiles.md#quantiles)
|