QUANTILE_TDIGEST_WEIGHTED (Lakehouse v1)
Berechnet ein approximatives Quantil einer numerischen Datenfolge mit dem t-digest-Algorithmus. Diese Funktion berücksichtigt das Gewicht jedes Elements der Folge. Der Speicherverbrauch beträgt log(n), wobei n die Anzahl der Werte ist.
Analyze-Syntax
Abschnitt betitelt „Analyze-Syntax“func.quantile_tdigest_weighted(<levels>, <expr>, <weight_expr>)Analyze-Beispiele
Abschnitt betitelt „Analyze-Beispiele“func.quantile_tdigest_weighted([0.5, 0.8], table.sales_amount, 1).alias('sales_amounts')
| sales_amounts ||-----------------------+| [6000.0,7000.0] |SQL-Syntax
Abschnitt betitelt „SQL-Syntax“QUANTILE_TDIGEST_WEIGHTED(<level1>[, <level2>, ...])(<expr>, <weight_expr>)Argumente
Abschnitt betitelt „Argumente“| Argumente | Beschreibung |
|---|---|
<level n> |
Eine Quantilstufe ist eine konstante Gleitkommazahl von 0 bis 1. Es wird empfohlen, einen Stufenwert im Bereich [0.01, 0.99] zu verwenden. |
<expr> |
Beliebiger numerischer Ausdruck |
<weight_expr> |
Beliebiger Ausdruck vom Typ vorzeichenlose Ganzzahl. Das Gewicht ist die Anzahl der Vorkommen eines Werts. |
Rückgabetyp
Abschnitt betitelt „Rückgabetyp“Gibt je nach Anzahl der angegebenen Quantilstufen entweder einen Float64-Wert oder ein Array von Float64-Werten zurück.
SQL-Beispiele
Abschnitt betitelt „SQL-Beispiele“-- 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] |