quantileBFloat16Weighted
Like quantileBFloat16 but takes into account the weight of each sequence member.
Like quantileBFloat16 but takes into account the weight of each sequence member.
Computes an approximate quantile of a sample consisting of bfloat16 numbers.
bfloat16 is a floating-point data type with 1 sign bit, 8 exponent bits and 7 fraction bits.
The function converts input values to 32-bit floats and takes the most significant 16 bits.
Then it calculates bfloat16 quantile value and converts the result to a 64-bit float by appending zero bits.
The function is a fast quantile estimator with a relative error no more than 0.390625%.
Syntax
quantileBFloat16Weighted(level)(expr, weight)Parameters
level— Optional. Level of quantile. Possible values are in the range from 0 to 1. Default value: 0.5.Float*
Arguments
expr— Column with numeric data.(U)Int*orFloat*weight— Column with weights of sequence members.(U)Int*orFloat*
Returned value
Approximate quantile of the specified level. Float64
Examples
Computing weighted quantile with bfloat16
CREATE TABLE example_table (a UInt32, b Float32, w UInt32) ENGINE = Memory;
INSERT INTO example_table VALUES (1, 1.001, 1), (2, 1.002, 2), (3, 1.003, 3), (4, 1.004, 4);
SELECT quantileBFloat16Weighted(0.75)(a, w), quantileBFloat16Weighted(0.75)(b, w) FROM example_table;┌─quantileBFloat16Weighted(0.75)(a, w)─┬─quantileBFloat16Weighted(0.75)(b, w)─┐
│ 3 │ 1 │
└──────────────────────────────────────┴──────────────────────────────────────┘Introduced in version 21.10.