quantileBFloat16
Добавленный в: v21.7.0
Вычисляет приближённый квантиль для выборки, состоящей из чисел bfloat16.
bfloat16 — это тип данных с плавающей запятой, имеющий 1 бит знака, 8 бит экспоненты и 7 бит мантиссы.
Функция преобразует входные значения в 32-битные числа с плавающей запятой и берёт 16 старших бит. Затем она вычисляет значение квантиля bfloat16 и преобразует результат в 64-битное число с плавающей запятой, дописывая нулевые биты.
Функция является быстрым оценщиком квантиля с максимальной относительной ошибкой 0.78125% (и средней относительной ошибкой приблизительно 0.27%), что соответствует 7-битной точности мантиссы bfloat16.
Синтаксис
quantileBFloat16[(level)](expr)Псевдонимы: medianBFloat16
Параметры
level— Необязательный параметр. Уровень квантиля. Возможные значения: от 0 до 1. Значение по умолчанию: 0.5.Float*
Аргументы
expr— Выражение над значениями столбца, результатом которого являются числовые типы данных,DateилиDateTime.(U)Int*илиFloat*илиDateилиDateTime
Возвращаемое значение
Приближённый квантиль указанного уровня. Для входных значений Date и DateTime выходной формат совпадает с входным. Float64 или Date или DateTime
Примеры
Вычисление квантиля с использованием bfloat16
CREATE TABLE example_table (a UInt32, b Float32) ENGINE = Memory;
INSERT INTO example_table VALUES (1, 1.001), (2, 1.002), (3, 1.003), (4, 1.004);
SELECT quantileBFloat16(0.75)(a), quantileBFloat16(0.75)(b) FROM example_table;┌─quantileBFloat16(0.75)(a)─┬─quantileBFloat16(0.75)(b)─┐
│ 3 │ 1 │
└───────────────────────────┴───────────────────────────┘См. также