Обзор
UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64, Float32 или Float64.
Перед выполнением операции оба операнда приводятся к типу результата. Тип результата определяется следующим образом (если в документации по функции ниже не указано
иначе):
- Если оба операнда имеют разрядность до 32 бит, размер типа результата будет равен размеру следующего большего типа после большего из
двух операндов (повышение разрядности целых чисел). Например,
UInt8 + UInt16 = UInt32илиFloat32 * Float32 = Float64. - Если один из операндов имеет разрядность 64 бита или больше, размер типа результата будет таким же, как у большего из двух операндов. Например,
UInt32 + UInt128 = UInt128илиFloat32 * Float64 = Float64. - Если один из операндов знаковый, тип результата также будет знаковым, в противном случае — беззнаковым. Например,
UInt32 * Int32 = Int64илиUInt32 * UInt32 = UInt64.
abs
x. Не имеет эффекта, если x имеет беззнаковый тип. Если x имеет знаковый тип, возвращает беззнаковое число.
Синтаксис
x— Значение, для которого вычисляется абсолютное значение
x
Примеры
Пример использования
Query
Response
avg2
x1, x2]— Принимает два значения для вычисления среднего.
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
byteSwap
- Преобразуйте целое число из десятичной системы в эквивалентное шестнадцатеричное представление в формате big-endian, то есть 3351772109 -> C7 C7 FB CD (4 байта)
- Переставьте байты в обратном порядке, то есть C7 C7 FB CD -> CD FB C7 C7
- Преобразуйте результат обратно в целое число, предполагая формат big-endian, то есть CD FB C7 C7 -> 3455829959 Одно из применений этой функции — перестановка байтов в IPv4-адресах:
x— Целое число.(U)Int*
x с байтами в обратном порядке. (U)Int*
Примеры
Пример использования
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
divide
a и b. Тип результата всегда — Float64.
Для целочисленного деления используется функция intDiv.
При делении на
0 возвращается inf, -inf или nan.x— Делимое -y— Делитель
Query
Response
Query
Response
divideDecimal
result_scale (константный Integer в диапазоне [0, 76]). Если он не указан, масштаб результата будет равен максимальному масштабу среди переданных аргументов.
Эта функция работает значительно медленнее, чем обычная
divide.
Если вам не требуется контролируемая точность и/или нужны быстрые вычисления, используйте divide.x— Первое значение: Decimal. -y— Второе значение: Decimal. -result_scale— Указанный масштаб результата. Тип: Int/UInt.
Decimal256
Примеры
Пример 1
Query
Response
Query
Response
divideOrNull
divide, но при делении на ноль возвращает NULL.
Синтаксис
x— делимое -y— делитель
x на y, или NULL.
Примеры
Деление на ноль
Query
Response
gcd
x— Первое целое число -y— Второе целое число
x и y.
Примеры
Пример использования
Query
Response
ifNotFinite
isFinite(x) ? x : y.
Синтаксис
x, еслиxявляется конечным.y, еслиxне является конечным.
Query
Response
intDiv
x на y. Иными словами,
вычисляет частное, округлённое вниз до ближайшего меньшего целого числа.
Результат имеет ту же разрядность, что и делимое (первый параметр).
Исключение генерируется при делении на ноль, если частное не помещается
в диапазон делимого, или при делении минимального отрицательного числа на минус один.
Синтаксис
x— Левый операнд. -y— Правый операнд.
x на y
Примеры
Целочисленное деление двух чисел с плавающей точкой
Query
Response
Query
Response
intDivOrNull
intDiv, но возвращает NULL при делении на ноль или при делении
наименьшего отрицательного числа на минус единицу.
Синтаксис
x на y или NULL.
Примеры
Целочисленное деление на ноль
Query
Response
Query
Response
intDivOrZero
intDiv, но возвращает ноль при делении на ноль или при делении
наименьшего отрицательного числа на минус единицу.
Синтаксис
a на b, либо ноль.
Примеры
Целочисленное деление на ноль
Query
Response
Query
Response
isFinite
1, если аргумент Float32 или Float64 не является бесконечным и не равен NaN,
в противном случае возвращает 0.
Синтаксис
x— Число для проверки на конечность.Float*
1, если x не является бесконечным и не равно NaN, иначе 0.
Примеры
Проверка, является ли число конечным
Query
Response
isInfinite
1, если аргумент типа Float32 или Float64 является бесконечностью; в противном случае возвращает 0.
Обратите внимание, что для NaN также возвращается 0.
Синтаксис
x— число, которое нужно проверить на бесконечность.Float*
1, если x бесконечно, иначе — 0 (в том числе для NaN).
Примеры
Проверка, является ли число бесконечным
Query
Response
isNaN
1, если аргумент типа Float32 или Float64 имеет значение NaN, в противном случае возвращает 0.
Синтаксис
x— аргумент, для которого проверяется, является ли онNaN.Float*
1, если значение равно NaN, иначе 0
Примеры
Пример использования
Query
Response
lcm
x и y.
Генерируется исключение при делении на ноль или при делении минимального отрицательного числа на минус один.
Синтаксис
x и y. (U)Int*
Примеры
Пример использования
Query
Response
max2
x и y.
Синтаксис
x— Первое значение(U)Int8/16/32/64илиFloat*, илиDecimaly— Второе значение(U)Int8/16/32/64илиFloat*, илиDecimal
x и y. Float64
Примеры
Пример использования
Query
Response
midpoint
x1[, x2, ...]— Принимает одно или несколько значений для вычисления среднего.
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
min2
x и y.
Синтаксис
x— Первое значение(U)Int8/16/32/64илиFloat*, илиDecimaly— Второе значение(U)Int8/16/32/64илиFloat*, илиDecimal
x и y. Float64
Примеры
Пример использования
Query
Response
minus
a и b. Результат всегда знаковый.
Как и в случае с plus, из значения типа дата или дата и время можно вычитать целое число.
Кроме того, поддерживается вычитание между значениями типа дата и время, в результате которого получается разница во времени между ними.
Синтаксис
x— Уменьшаемое. -y— Вычитаемое.
Query
Response
Query
Response
modulo
mod
Аргументы
a— Делимое -b— Делитель (модуль)
a на b
Примеры
Пример использования
Query
Response
moduloLegacy
% из C++, который может возвращать отрицательные результаты для отрицательных аргументов. Эта функция существует для обратной совместимости со старой логикой партиционирования таблиц. Для стандартного поведения используйте modulo или positiveModulo.
Синтаксис
(U)Int* или Float*
Примеры
Базовое использование
Query
Response
moduloOrNull
a на b. Аналогична функции modulo, но moduloOrNull возвращает NULL,
если правый аргумент равен 0.
Синтаксис
modOrNull
Аргументы
Возвращаемое значение
Возвращает остаток от деления x на y или NULL, если делитель равен нулю.
Примеры
moduloOrNull при делении на ноль
Query
Response
moduloOrZero
modulo, но возвращает ноль, если делитель равен нулю, вместо
исключения, которое возникает в функции modulo.
Синтаксис
a % b или 0, если делитель равен 0.
Примеры
Пример использования
Query
Response
multiply
x и y.
Синтаксис
x и y
Примеры
Умножение двух чисел
Query
Response
multiplyDecimal
result_scale (константный Integer в диапазоне [0, 76]). Если он не указан, масштаб результата будет равен максимальному масштабу переданных аргументов.
Эти функции работают значительно медленнее, чем обычная
multiply.
Если вам не нужна контролируемая точность и/или важна высокая скорость вычислений, рассмотрите использование multiplya— Первое значение.Decimalb— Второе значение.Decimalresult_scale— Масштаб результата.(U)Int*
Decimal256
Примеры
Пример использования
Query
Response
Query
Response
Query
Response
negate
x на противоположный. Результат всегда знаковый.
Синтаксис
x— Значение, знак которого нужно изменить на противоположный.
Query
Response
plus
x и y. Псевдоним: x + y (оператор).
Можно складывать целое число и дату или дату и время. В первом случае
увеличивается число дней в дате, во втором —
число секунд в дате и времени.
Также можно складывать дату и время. При сложении Date и Time
получается DateTime. При сложении Date и Time64, а также Date32 и
Time или Time64, получается DateTime64.
Синтаксис
x— Левый операнд. -y— Правый операнд.
x и y
Примеры
Сложение двух чисел
Query
Response
Query
Response
Query
Response
positiveModulo
x на y. Аналогична функции
modulo, но positiveModulo всегда возвращает неотрицательное число.
Синтаксис
positive_modulo, pmod
Аргументы
Возвращаемое значение
Возвращает разность между x и ближайшим к нему целым числом, которое не превышает
x и делится на y.
Примеры
Пример использования
Query
Response
positiveModuloOrNull
a на b. Аналогична функции positiveModulo, но positiveModuloOrNull возвращает NULL,
если правый аргумент равен 0.
Синтаксис
positive_modulo_or_null, pmodOrNull
Аргументы
x— Делимое.(U)Int*/Float32/64. -y— Делитель (модуль).(U)Int*/Float32/64.
x и ближайшим целым числом, не превышающим
x и кратным y; null, если делитель равен нулю.
Примеры
positiveModuloOrNull
Query
Response