📣
TiDB Cloud Premium 开放公测中。为企业级工作负载提供无限扩展、即时弹性伸缩和高级安全保障。此页面由 AI 自动翻译,英文原文请见此处。

QUANTILE_TDIGEST_WEIGHTED



使用 t-digest 算法计算数值数据序列的近似分位数。

该函数会考虑序列中每个成员的权重。内存消耗为 log(n),其中 n 是值的数量。

语法

QUANTILE_TDIGEST_WEIGHTED(<level1>[, <level2>, ...])(<expr>, <weight_expr>)

参数

参数描述
<level n>分位数级别,表示一个范围从 0 到 1 的常数浮点数。建议使用 [0.01, 0.99] 范围内的级别值。
<expr>任意数值表达式
<weight_expr>任意无符号整数表达式。权重表示某个值出现的次数。

返回类型

根据指定的分位数级别数量,返回一个 Float64 值或一个 Float64 数组。

示例

-- Create a table and insert sample data CREATE TABLE sales_data ( id INT, sales_person_id INT, sales_amount FLOAT ); INSERT INTO sales_data (id, sales_person_id, sales_amount) VALUES (1, 1, 5000), (2, 2, 5500), (3, 3, 6000), (4, 4, 6500), (5, 5, 7000); SELECT QUANTILE_TDIGEST_WEIGHTED(0.5)(sales_amount, 1) AS median_sales_amount FROM sales_data; median_sales_amount| -------------------+ 6000.0| SELECT QUANTILE_TDIGEST_WEIGHTED(0.5, 0.8)(sales_amount, 1) FROM sales_data; quantile_tdigest_weighted(0.5, 0.8)(sales_amount)| -------------------------------------------------+ [6000.0,7000.0] |

文档内容是否有帮助?