Spec-Zone.ru › DuckDB

Числовые функции

Числовые операторы

В таблице ниже представлены доступные математические операторы для числовых типов.

Оператор Описание Пример Результат
+ сложение 2 + 3 5
- вычитание 2 - 3 -1
* умножение 2 * 3 6
/ деление с плавающей точкой 5 / 2 2.5
// целочисленное деление 5 // 2 2
% остаток от деления (модуль) 5 % 4 1
** возведение в степень 3 ** 4 81
^ возведение в степень (псевдоним для **) 3 ^ 4 81
& побитовое И 91 & 15 11
| побитовое ИЛИ 32 | 3 35
<< побитовый сдвиг влево 1 << 4 16
>> побитовый сдвиг вправо 8 >> 2 2
~ побитовое отрицание ~15 -16
! факториал x 4! 24

Операторы деления и модуля

Существуют два оператора деления: / и //. Они эквивалентны, когда хотя бы один из операндов является FLOAT или DOUBLE. Когда оба операнда являются целыми числами, / выполняет деление с плавающей точкой (5 / 2 = 2.5), а // выполняет целочисленное деление (5 // 2 = 2).

Поддерживаемые типы

Операторы модуля, побитовые, отрицания и факториала работают только с целочисленными типами данных, в то время как другие доступны для всех числовых типов данных.

Числовые функции

В таблице ниже представлены доступные математические функции.

Имя Описание
@(x) Модуль числа. Скобки необязательны, если x — имя столбца.
abs(x) Модуль числа.
acos(x) Вычисляет арккосинус x.
add(x, y) Псевдоним для x + y.
asin(x) Вычисляет арксинус x.
atan(x) Вычисляет арктангенс x.
atan2(y, x) Вычисляет арктангенс (y, x).
bit_count(x) Возвращает количество установленных битов.
cbrt(x) Возвращает кубический корень числа.
ceil(x) Округляет число вверх.
ceiling(x) Округляет число вверх. Псевдоним для ceil.
cos(x) Вычисляет косинус x.
cot(x) Вычисляет котангенс x.
degrees(x) Преобразует радианы в градусы.
divide(x, y) Псевдоним для x // y.
even(x) Округляет к ближайшему четному числу, отдаляясь от нуля.
exp(x) Вычисляет e ** x.
factorial(x) См. оператор !. Вычисляет произведение текущего целого числа и всех целых чисел ниже его.
fdiv(x, y) Выполняет целочисленное деление (x // y), но возвращает значение DOUBLE.
floor(x) Округляет число вниз.
fmod(x, y) Вычисляет остаток от деления. Всегда возвращает значение DOUBLE.
gamma(x) Интерполяция факториала x - 1. Разрешены дробные входные данные.
gcd(x, y) Вычисляет наибольший общий делитель x и y.
greatest_common_divisor(x, y) Вычисляет наибольший общий делитель x и y.
greatest(x1, x2, ...) Выбирает наибольшее значение.
isfinite(x) Возвращает true, если значение с плавающей точкой конечно, иначе false.
isinf(x) Возвращает true, если значение с плавающей точкой бесконечно, иначе false.
isnan(x) Возвращает true, если значение с плавающей точкой — не число, иначе false.
lcm(x, y) Вычисляет наименьшее общее кратное x и y.
least_common_multiple(x, y) Вычисляет наименьшее общее кратное x и y.
least(x1, x2, ...) Выбирает наименьшее значение.
lgamma(x) Вычисляет логарифм функции gamma.
ln(x) Вычисляет натуральный логарифм x.
log(x) Вычисляет логарифм по основанию 10 от x.
log10(x) Псевдоним для log. Вычисляет логарифм по основанию 10 от x.
log2(x) Вычисляет двоичный логарифм x.
multiply(x, y) Псевдоним для x * y.
nextafter(x, y) Возвращает следующее значение с плавающей точкой после x в направлении y.
pi() Возвращает значение числа пи.
pow(x, y) Вычисляет x в степени y.
power(x, y) Псевдоним для pow. Вычисляет x в степени y.
radians(x) Преобразует градусы в радианы.
random() Возвращает случайное число x в диапазоне 0.0 <= x < 1.0.
round_even(v NUMERIC, s INTEGER) Псевдоним для roundbankers(v, s). Округляет до s десятичных знаков, используя правило округления до ближайшего чётного. Разрешены значения s < 0.
round(v NUMERIC, s INTEGER) Округляет до s десятичных знаков. Разрешены значения s < 0.
setseed(x) Устанавливает seed для функции генерации случайных чисел.
sign(x) Возвращает знак x как -1, 0 или 1.
signbit(x) Возвращает, установлен ли знаковый бит.
sin(x) Вычисляет синус x.
sqrt(x) Возвращает квадратный корень из числа.
subtract(x, y) Псевдоним для x - y.
tan(x) Вычисляет тангенс x.
trunc(x) Отбрасывает дробную часть числа.
xor(x, y) Побитовое XOR.

@(x)

Описание Модуль числа. Скобки необязательны, если x — имя столбца.
Пример @(-17.4)
Результат 17.4
Псевдоним abs

abs(x)

Описание Модуль числа.
Пример abs(-17.4)
Результат 17.4
Псевдоним @

acos(x)

Описание Вычисляет арккосинус x.
Пример acos(0.5)
Результат 1.0471975511965976

add(x, y)

Описание Псевдоним для x + y.
Пример add(2, 3)
Результат 5

asin(x)

Описание Вычисляет арксинус x.
Пример asin(0.5)
Результат 0.5235987755982989

atan(x)

Описание Вычисляет арктангенс x.
Пример atan(0.5)
Результат 0.4636476090008061

atan2(y, x)

Описание Вычисляет арктангенс (y, x).
Пример atan2(0.5, 0.5)
Результат 0.7853981633974483

bit_count(x)

Описание Возвращает количество установленных битов.
Пример bit_count(31)
Результат 5

cbrt(x)

Описание Возвращает кубический корень числа.
Пример cbrt(8)
Результат 2

ceil(x)

Описание Округляет число вверх.
Пример ceil(17.4)
Результат 18

ceiling(x)

Описание Округляет число вверх. Псевдоним для ceil.
Пример ceiling(17.4)
Результат 18

cos(x)

Описание Вычисляет косинус x.
Пример cos(90)
Результат -0.4480736161291701

cot(x)

Описание Вычисляет котангенс x.
Пример cot(0.5)
Результат 1.830487721712452

degrees(x)

Описание Преобразует радианы в градусы.
Пример degrees(pi())
Результат 180

divide(x, y)

Описание Псевдоним для x // y.
Пример divide(5, 2)
Результат 2

even(x)

Описание Округляет до ближайшего чётного числа, удаляя от нуля.
Пример even(2.9)
Результат 4

exp(x)

Описание Вычисляет e ** x.
Пример exp(0.693)
Результат 2

factorial(x)

Описание См. оператор !. Вычисляет произведение текущего целого числа и всех целых чисел ниже его.
Пример factorial(4)
Результат 24

fdiv(x, y)

Описание Выполняет целочисленное деление (x // y), но возвращает значение DOUBLE.
Пример fdiv(5, 2)
Результат 2.0

floor(x)

Описание Округляет число вниз.
Пример floor(17.4)
Результат 17

fmod(x, y)

Описание Вычисляет остаток от деления. Всегда возвращает значение DOUBLE.
Пример fmod(5, 2)
Результат 1.0

gamma(x)

Описание Интерполяция факториала x - 1. Допускаются дробные входные значения.
Пример gamma(5.5)
Результат 52.34277778455352

gcd(x, y)

Описание Вычисляет наибольший общий делитель x и y.
Пример gcd(42, 57)
Результат 3

greatest_common_divisor(x, y)

Описание Вычисляет наибольший общий делитель x и y.
Пример greatest_common_divisor(42, 57)
Результат 3

greatest(x1, x2, ...)

Описание Выбирает наибольшее значение.
Пример greatest(3, 2, 4, 4)
Результат 4

isfinite(x)

Описание Возвращает true, если значение с плавающей запятой конечно, и false в противном случае.
Пример isfinite(5.5)
Результат true

isinf(x)

Описание Возвращает true, если значение с плавающей запятой бесконечно, и false в противном случае.
Пример isinf('Infinity'::float)
Результат true

isnan(x)

Описание Возвращает true, если значение с плавающей запятой не является числом, и false в противном случае.
Пример isnan('NaN'::float)
Результат true

lcm(x, y)

Описание Вычисляет наименьшее общее кратное x и y.
Пример lcm(42, 57)
Результат 798

least_common_multiple(x, y)

Описание Вычисляет наименьшее общее кратное x и y.
Пример least_common_multiple(42, 57)
Результат 798

least(x1, x2, ...)

Описание Выбирает наименьшее значение.
Пример least(3, 2, 4, 4)
Результат 2

lgamma(x)

Описание Вычисляет логарифм функции gamma.
Пример lgamma(2)
Результат 0

ln(x)

Описание Вычисляет натуральный логарифм x.
Пример ln(2)
Результат 0.693

log(x)

Описание Вычисляет логарифм по основанию 10 от x.
Пример log(100)
Результат 2

log10(x)

Описание Псевдоним для log. Вычисляет логарифм по основанию 10 от x.
Пример log10(1000)
Результат 3

log2(x)

Описание Вычисляет логарифм по основанию 2 от x.
Пример log2(8)
Результат 3

multiply(x, y)

Описание Псевдоним для x * y.
Пример multiply(2, 3)
Результат 6

nextafter(x, y)

Описание Возвращает следующее значение с плавающей точкой после x в направлении y.
Пример nextafter(1::float, 2::float)
Результат 1.0000001

pi()

Описание Возвращает значение числа пи.
Пример pi()
Результат 3.141592653589793

pow(x, y)

Описание Вычисляет x в степени y.
Пример pow(2, 3)
Результат 8

power(x, y)

Описание Псевдоним для pow. Вычисляет x в степени y.
Пример power(2, 3)
Результат 8

radians(x)

Описание Преобразует градусы в радианы.
Пример radians(90)
Результат 1.5707963267948966

random()

Описание Возвращает случайное число x в диапазоне 0.0 <= x < 1.0.
Пример random()
Результат различные

round_even(v NUMERIC, s INTEGER)

Описание Псевдоним для roundbankers(v, s). Округляет до s знаков после запятой, используя правило «округления до ближайшего чётного».округление до ближайшего чётного. Допускаются значения s < 0.
Пример round_even(24.5, 0)
Результат 24.0

round(v NUMERIC, s INTEGER)

Описание Округляет до s знаков после запятой. Допускаются значения s < 0.
Пример round(42.4332, 2)
Результат 42.43

setseed(x)

Описание Устанавливает начальное значение для функции random.
Пример setseed(0.42)

sign(x)

Описание Возвращает знак x как -1, 0 или 1.
Пример sign(-349)
Результат -1

signbit(x)

Описание Возвращает, установлен ли бит знака или нет.
Пример signbit(-1.0)
Результат true

sin(x)

Описание Вычисляет синус от x.
Пример sin(90)
Результат 0.8939966636005579

sqrt(x)

Описание Возвращает квадратный корень из числа.
Пример sqrt(9)
Результат 3

subtract(x, y)

Описание Псевдоним для x - y.
Пример subtract(2, 3)
Результат -1

tan(x)

Описание Вычисляет тангенс от x.
Пример tan(90)
Результат -1.995200412208242

trunc(x)

Описание Отбрасывает дробную часть числа.
Пример trunc(17.4)
Результат 17

xor(x, y)

Описание Побитовое XOR.
Пример xor(17, 5)
Результат 20

© Copyright 2018–2024 Stichting DuckDB Foundation
Licensed under the MIT License.
https://duckdb.org/docs/sql/functions/numeric.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API