This commit is contained in:
Ganlin Zhao 2023-02-22 16:31:45 +08:00
parent 8175b36d31
commit f72b0d9861
2 changed files with 14 additions and 6 deletions

View File

@ -795,19 +795,23 @@ HISTOGRAM(exprbin_type, bin_description, normalized)
### PERCENTILE ### PERCENTILE
```sql ```sql
PERCENTILE(expr, p) PERCENTILE(expr, p [, p1] ...)
``` ```
**Description**: The value whose rank in a specific column matches the specified percentage. If such a value matching the specified percentage doesn't exist in the column, an interpolation value will be returned. **Description**: The value whose rank in a specific column matches the specified percentage. If such a value matching the specified percentage doesn't exist in the column, an interpolation value will be returned.
**Return value type**: DOUBLE **Return value type**: This function takes 2 minumum and 11 maximum parameters, and it can simultaneously return 10 percentiles at most. If 2 parameters are given, a single percentile is returned and the value type is DOUBLE.
If more than 2 parameters are given, the return value type is a VARCHAR string, the format of which is a JSON ARRAY containing all return values.
**Applicable column types**: Numeric **Applicable column types**: Numeric
**Applicable table types**: table only **Applicable table types**: table only
**More explanations**: _p_ is in range [0,100], when _p_ is 0, the result is same as using function MIN; when _p_ is 100, the result is same as function MAX. **More explanations**:
- _p_ is in range [0,100], when _p_ is 0, the result is same as using function MIN; when _p_ is 100, the result is same as function MAX.
- When calculating multiple percentiles of a specific column, a single PERCENTILE function with multiple parameters is adviced, as this can largely reduce the query response time.
For example, using SELECT percentile(col, 90, 95, 99) FROM table will perform better than SELECT percentile(col, 90), percentile(col, 95), percentile(col, 99) from table.
## Selection Functions ## Selection Functions

View File

@ -798,18 +798,22 @@ HISTOGRAM(exprbin_type, bin_description, normalized)
### PERCENTILE ### PERCENTILE
```sql ```sql
PERCENTILE(expr, p) PERCENTILE(expr, p [, p1] ... )
``` ```
**功能说明**:统计表中某列的值百分比分位数。 **功能说明**:统计表中某列的值百分比分位数。
**返回数据类型** DOUBLE。 **返回数据类型** 该函数最小参数个数为 2 个,最大参数个数为 11 个。可以最多同时返回 10 个百分比分位数。当参数个数为 2 时, 返回一个分位数, 类型为DOUBLE,当参数个数大于 2 时返回类型为VARCHAR, 格式为包含多个返回值的JSON数组
**应用字段**:数值类型。 **应用字段**:数值类型。
**适用于**:表。 **适用于**:表。
**使用说明***P*值取值范围 0≤*P*≤100为 0 的时候等同于 MIN为 100 的时候等同于 MAX。 **使用说明**
- *P*值取值范围 0≤*P*≤100为 0 的时候等同于 MIN为 100 的时候等同于 MAX;
- 同时计算针对同一列的多个分位数时建议使用一个PERCENTILE函数和多个参数的方式能很大程度上降低查询的响应时间。
比如使用查询SELECT percentile(col, 90, 95, 99) FROM table, 性能会优于SELECT percentile(col, 90), percentile(col, 95), percentile(col, 99) from table。
## 选择函数 ## 选择函数