ReferenceSQL ReferenceAggregate Functions

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

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.