QUANTILE_TDIGEST_WEIGHTED (Lakehouse v1)
t-digest 알고리즘을 사용하여 숫자 데이터 시퀀스의 근사 분위수를 계산합니다. 이 함수는 시퀀스 각 구성원의 가중치를 고려합니다. 메모리 사용량은 log(n) 이며, n은 값의 개수입니다.
Analyze 구문
섹션 제목: “Analyze 구문”func.quantile_tdigest_weighted(<levels>, <expr>, <weight_expr>)Analyze 예제
섹션 제목: “Analyze 예제”func.quantile_tdigest_weighted([0.5, 0.8], table.sales_amount, 1).alias('sales_amounts')
| sales_amounts ||-----------------------+| [6000.0,7000.0] |SQL 구문
섹션 제목: “SQL 구문”QUANTILE_TDIGEST_WEIGHTED(<level1>[, <level2>, ...])(<expr>, <weight_expr>)| 인수 | 설명 |
|---|---|
<level n> |
분위수의 수준은 0에서 1 사이의 부동 소수점 상수를 나타냅니다. [0.01, 0.99] 범위의 수준 값을 사용하는 것이 좋습니다. |
<expr> |
모든 숫자 식 |
<weight_expr> |
모든 부호 없는 정수 식입니다. 가중치는 값이 나타나는 횟수입니다. |
반환 형식
섹션 제목: “반환 형식”지정한 분위수 수준의 개수에 따라 Float64 값 또는 Float64 값의 배열을 반환합니다.
SQL 예제
섹션 제목: “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] |