QUANTILE_TDIGEST_WEIGHTED (Lakehouse v1)
t-digestアルゴリズムを使用して、数値データ列の近似分位数を計算します。 この関数は、データ列の各メンバーの重みを考慮します。メモリ消費量は log(n) です(n は値の数)。
Analyzeの構文
Section titled “Analyzeの構文”func.quantile_tdigest_weighted(<levels>, <expr>, <weight_expr>)Analyzeの例
Section titled “Analyzeの例”func.quantile_tdigest_weighted([0.5, 0.8], table.sales_amount, 1).alias('sales_amounts')
| sales_amounts ||-----------------------+| [6000.0,7000.0] |SQLの構文
Section titled “SQLの構文”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 dataCREATE 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_amountFROM 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] |