Арифметические функции
Для всех арифметических функций в 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. |
Функция | Описание |
---|---|
|
Вычисляет сумму чисел |
|
Вычисляет разность чисел |
|
Вычисляет произведение чисел |
|
Вычисляет частное чисел |
|
Вычисляет целочисленное частное чисел |
|
Аналог |
|
Вычисляет остаток от деления числа |
|
Аналог |
|
Вычисляет число, обратное по знаку к |
|
Возвращает абсолютное значение числа |
|
Вычисляет наибольший общий делитель чисел |
|
Вычисляет наименьшее общее кратное чисел |
|
Сравнивает числа |
|
Сравнивает числа |
|
Умножает два числа типа |
|
Делит два числа типа |