Арифметические функции
Для всех арифметических функций в RQL тип результата вычисляется как минимальный числовой тип, который может вместить результат, если такой тип существует. Выбор минимального типа происходит с учётом числа бит, знаковости и "плавучести". Если минимальных бит не хватает, то используется тип с максимальной битностью.
Примеры использования:
SELECT toTypeName(0), toTypeName(0 + 0), toTypeName(0 + 0 + 0), toTypeName(0 + 0 + 0 + 0)
Результат:
┌─toTypeName(0)─┬─toTypeName(plus(0, 0))─┬─toTypeName(plus(plus(0, 0), 0))─┬─toTypeName(plus(plus(plus(0, 0), 0), 0))─┐
│ UInt8 │ UInt16 │ UInt32 │ UInt64 │
└───────────────┴────────────────────────┴─────────────────────────────────┴──────────────────────────────────────────┘
Арифметические функции работают для любой пары типов из UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64, Float32, Float64. Переполнение обрабатывается аналогично C++.
Использование функций multiplyDecimal и divideDecimal предпочтительнее в ситуациях, когда необходима высокая точность вычислений и контроль за размером дробной части. В то же время следует учитывать, что эти функции могут работать медленнее стандартных арифметических функций multiply и divide .
|
Набор поддерживаемых функций RQL и их поведение зависят от версии установленного ClickHouse. Если функция не поддерживается в используемой версии ClickHouse, она также не будет доступна в RQL. Ознакомиться с актуальным списком функций и их поведением можно в официальном репозитории ClickHouse, выбрав нужную версию из веток. Например: список арифметических функций для ClickHouse 24.7. |
Функция | Описание |
---|---|
|
Вычисляет сумму чисел |
|
Вычисляет разность чисел |
|
Вычисляет произведение чисел |
|
Вычисляет частное чисел |
|
Вычисляет целочисленное частное чисел |
|
Аналог |
|
Вычисляет остаток от деления числа |
|
Аналог |
|
Вычисляет число, обратное по знаку к |
|
Возвращает абсолютное значение числа |
|
Вычисляет наибольший общий делитель чисел |
|
Вычисляет наименьшее общее кратное чисел |
|
Сравнивает числа |
|
Сравнивает числа |
|
Умножает два числа типа |
|
Делит два числа типа |