跳转到内容

聚合函数。

QUANTILE_DISC() 函数计算数值数据序列的精确分位数。 QUANTILE 是 QUANTILE_DISC 的别名。

func.quantile_disc(<levels>, <expr>)
func.quantile_disc([0.25, 0.75], table.salary).alias('salary_quantiles')
| salary_quantiles |
|---------------------|
| [55000.0, 65000.0] |
QUANTILE_DISC(<levels>)(<expr>)
QUANTILE_DISC(level1, level2, ...)(<expr>)
参数 说明
level(s) 分位数的水平。每个水平是 0 到 1 之间的常量浮点数。建议使用 [0.01, 0.99] 范围内的水平值。
<expr> 任意数值表达式

InputType 或 InputType 数组,取决于水平的数量。

创建表并插入示例数据

CREATE TABLE salary_data (
id INT,
employee_id INT,
salary FLOAT
);
INSERT INTO salary_data (id, employee_id, salary)
VALUES (1, 1, 50000),
(2, 2, 55000),
(3, 3, 60000),
(4, 4, 65000),
(5, 5, 70000);

查询演示:计算薪资的第 25 和第 75 百分位数

SELECT QUANTILE_DISC(0.25, 0.75)(salary) AS salary_quantiles
FROM salary_data;

结果

| salary_quantiles |
|---------------------|
| [55000.0, 65000.0] |