QUANTILE_TDIGEST_WEIGHTED (Lakehouse v1)
Calcula um quantil aproximado de uma sequência de dados numéricos usando o algoritmo t-digest. Esta função leva em conta o peso de cada membro da sequência. O consumo de memória é de log(n), em que n é o número de valores.
Sintaxe do Analyze
Seção intitulada “Sintaxe do Analyze”func.quantile_tdigest_weighted(<levels>, <expr>, <weight_expr>)Exemplos do Analyze
Seção intitulada “Exemplos do Analyze”func.quantile_tdigest_weighted([0.5, 0.8], table.sales_amount, 1).alias('sales_amounts')
| sales_amounts ||-----------------------+| [6000.0,7000.0] |Sintaxe SQL
Seção intitulada “Sintaxe SQL”QUANTILE_TDIGEST_WEIGHTED(<level1>[, <level2>, ...])(<expr>, <weight_expr>)Argumentos
Seção intitulada “Argumentos”| Argumentos | Descrição |
|---|---|
<level n> |
Um nível de quantil representa um número de ponto flutuante constante entre 0 e 1. Recomenda-se usar um valor de nível no intervalo [0.01, 0.99]. |
<expr> |
Qualquer expressão numérica |
<weight_expr> |
Qualquer expressão de inteiro sem sinal. O peso é o número de ocorrências do valor. |
Tipo de retorno
Seção intitulada “Tipo de retorno”Retorna um valor Float64 ou um array de valores Float64, dependendo do número de níveis de quantil especificados.
Exemplos de SQL
Seção intitulada “Exemplos de SQL”-- 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] |