QUANTILE_TDIGEST_WEIGHTED (Lakehouse v1)
Calcula um quantil aproximado de uma sequência de dados numéricos com o algoritmo t-digest. Esta função tem em conta o peso de cada elemento 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 é um número de vírgula flutuante constante entre 0 e 1. Recomenda-se utilizar 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”Devolve um valor Float64 ou uma matriz de valores Float64, consoante o 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] |