QUANTILE_TDIGEST_WEIGHTED (Lakehouse v1)
Calcule un quantile approximatif d’une séquence de données numériques à l’aide de l’algorithme t-digest. Cette fonction tient compte du poids de chaque élément de la séquence. La consommation de mémoire est de log(n), où n est le nombre de valeurs.
Syntaxe Analyze
Section intitulée « Syntaxe Analyze »func.quantile_tdigest_weighted(<levels>, <expr>, <weight_expr>)Exemples Analyze
Section intitulée « Exemples Analyze »func.quantile_tdigest_weighted([0.5, 0.8], table.sales_amount, 1).alias('sales_amounts')
| sales_amounts ||-----------------------+| [6000.0,7000.0] |Syntaxe SQL
Section intitulée « Syntaxe SQL »QUANTILE_TDIGEST_WEIGHTED(<level1>[, <level2>, ...])(<expr>, <weight_expr>)Arguments
Section intitulée « Arguments »| Arguments | Description |
|---|---|
<level n> |
Un niveau de quantile est un nombre à virgule flottante constant compris entre 0 et 1. Il est recommandé d’utiliser une valeur de niveau comprise entre 0,01 et 0,99. |
<expr> |
Toute expression numérique |
<weight_expr> |
Toute expression de type entier non signé. Le poids correspond au nombre d’occurrences de la valeur. |
Type de retour
Section intitulée « Type de retour »Renvoie une valeur Float64 ou un tableau de valeurs Float64, selon le nombre de niveaux de quantile spécifiés.
Exemples SQL
Section intitulée « Exemples 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] |