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

Числовые функции — это функции для работы с данными числовых типов: BIGINT, NUMERIC и DOUBLE.

abs()

Описание

Вычисляет модуль числа.

Использование

abs(num)

Посмотреть примеры
SELECT
    abs(-1)  AS result_1,
    abs(0)   AS result_2,
    abs(1.1) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 1        | 0        | 1.1      |
+----------+----------+----------+

add()

Описание

Складывает числа.

Использование

add(num, num)

См. также Оператор +.

Посмотреть примеры
SELECT
    add(1, 1)      AS result_1,
    add(-1.1, 2.1) AS result_2,
    add(1)         AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 2        | 1.0      | 1        |
+----------+----------+----------+

ceil()

Описание

Округляет число в бОльшую сторону.

Использование

ceil(num)

Псевдонимы

ceiling()

Посмотреть примеры
SELECT
    ceil(0.1)  AS result_1,
    ceil(-0.1) AS result_2,
    ceiling(1) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 1        | 0        | 1        |
+----------+----------+----------+

cos()

Описание

Вычисляет косинус угла, заданного в радианах.

Использование

cos(num)

Посмотреть примеры
SELECT
    cos(0)      AS result_1,
    cos(pi())   AS result_2,
    cos(pi()/3) AS result_3;
+----------+----------+--------------------+
| result_1 | result_2 | result_3           |
+----------+----------+--------------------+
| 1        | -1       | 0.5000000000000001 |
+----------+----------+--------------------+

divide()

Описание

Возвращает результат деления в виде целого числа.

Использование

divide(num, num)

Посмотреть примеры
SELECT
    divide(7, 2)  AS result_1,
    divide(7, -2) AS result_2,
    divide(7, 0)  AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 3        | -3       | null     |
+----------+----------+----------+

even()

Описание

Округляет до ближайшего четного числа в сторону от нуля.

Использование

even(num)

Посмотреть примеры
SELECT
    even(2.1)  AS result_1,
    even(-2.1) AS result_2,
    even(0)    AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 4        | -4       | 0        |
+----------+----------+----------+

exp()

Описание

Вычисляет экспоненту числа.

Использование

exp(num)

Вычисляет экспоненциальное значение числа: .

Посмотреть примеры
SELECT
    exp(0)  AS result_1,
    exp(1)  AS result_2,
    exp(-1) AS result_3;
+----------+-------------------+---------------------+
| result_1 | result_2          | result_3            |
+----------+-------------------+---------------------+
| 1        | 2.718281828459045 | 0.36787944117144233 |
+----------+-------------------+---------------------+

floor()

Описание

Округляет число в меньшую сторону.

Использование

floor(num)

Посмотреть примеры
SELECT
    floor(0.9)  AS result_1,
    floor(-0.9) AS result_2,
    floor(1)    AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 0        | -1       | 1        |
+----------+----------+----------+

fmod()

Описание

Возвращает остаток от деления первого аргумента на второй.

Использование

fmod(num, num)

Посмотреть примеры
SELECT
    fmod(3, 2)   AS result_1,
    fmod(3.1, 2) AS result_2,
    fmod(-10, 4) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 1        | 1.1      | 2        |
+----------+----------+----------+

gcd()

Описание

Вычисляет наибольший общий делитель двух чисел.

Использование

gcd(num, num)

Псевдонимы

greatest_common_divisor()

Посмотреть примеры
SELECT
    gcd(12, 9)  AS result_1,
    gcd(-12, 9) AS result_2,
    gcd(12, 0)  AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 3        | 3        | 12       |
+----------+----------+----------+

greatest()

Описание

Возвращает наибольшее число из указанных в аргументах.

Использование

greatest(num[, num, ...])

Посмотреть примеры
SELECT
    greatest(1, 2, 3, 4, 4) AS result_1,
    greatest(1, -1)         AS result_2,
    greatest(0)             AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 4        | 1        | 0        |
+----------+----------+----------+

isfinite()

Описание

Проверяет, является ли число конечным.

Использование

isfinite(num)

Посмотреть примеры
SELECT
    isfinite(1)                  AS result_1,
    isfinite('Infinity'::DOUBLE) AS result_2,
    isfinite(NULL)               AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| true     | false    | null     |
+----------+----------+----------+

isinf()

Описание

Проверяет, является ли число бесконечным.

Использование

isinf(num)

Посмотреть примеры
SELECT
    isinf(1)                  AS result_1,
    isinf('Infinity'::DOUBLE) AS result_2,
    isinf(NULL)               AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| false    | true     | null     |
+----------+----------+----------+

isnan()

Описание

Проверяет, имеет ли аргумент значение NaN (Not a Number).

Использование

isnan(num)

Посмотреть примеры
SELECT
    isnan('NaN'::DOUBLE) AS result_1,
    isnan(1.1)           AS result_2,
    isnan(NULL)          AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| true     | false    | null     |
+----------+----------+----------+

lcm()

Описание

Вычисляет наименьшее общее кратное двух чисел.

Использование

lcm(num, num)

Псевдонимы

least_common_multiple()

Посмотреть примеры
SELECT
    lcm(3, 7)     AS result_1,
    lcm(333, 777) AS result_2,
    lcm(37, 0)    AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 21       | 2331     | 0        |
+----------+----------+----------+

least()

Описание

Возвращает наименьшее число из указанных в аргументах.

Использование

least(num[, num, ...])

Посмотреть примеры
SELECT
    least(1, 1, 2, 3, 4) AS result_1,
    least(1, -1)         AS result_2,
    least(0)             AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 1        | -1       | 0        |
+----------+----------+----------+

lgamma()

Описание

Вычисляет логарифм гамма-функции.

Использование

lgamma(num)

Посмотреть примеры
SELECT
    lgamma(1)   AS result_1,
    lgamma(11)  AS result_2,
    lgamma(1.1) AS result_3;
+----------+--------------------+-----------------------+
| result_1 | result_2           | result_3              |
+----------+--------------------+-----------------------+
| 0        | 15.104412573075518 | -0.049872441259839764 |
+----------+--------------------+-----------------------+

ln()

Описание

Вычисляет натуральный логарифм числа.

Использование

ln(num)

Посмотреть примеры
SELECT
    ln(1)   AS result_1,
    ln(11)  AS result_2,
    ln(1.1) AS result_3;
+----------+--------------------+---------------------+
| result_1 | result_2           | result_3            |
+----------+--------------------+---------------------+
| 0        | 2.3978952727983707 | 0.09531017980432493 |
+----------+--------------------+---------------------+

log()

Описание

Вычисляет логарифм числа по основанию 10.

Использование

log(num)

Псевдонимы

log10()

Посмотреть примеры
SELECT
    log(1)    AS result_1,
    log(100)  AS result_2,
    log(0.01) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 0        | 2        | -2       |
+----------+----------+----------+

log2()

Описание

Вычисляет логарифм числа по основанию 2.

Использование

log2(num)

Посмотреть примеры
SELECT
    log2(1)    AS result_1,
    log2(2)    AS result_2,
    log2(4096) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 0        | 1        | 12       |
+----------+----------+----------+

multiply()

Описание

Перемножает два числа.

Использование

multiply(num, num)

См. также Оператор *.

Посмотреть примеры
SELECT
    multiply(2, 2)      AS result_1,
    multiply(0, 2)      AS result_2,
    multiply(0.2, -0.2) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 4        | 0        | -0.04    |
+----------+----------+----------+

nextafter()

Описание

Возвращает следующее значение с переменной точностью (типа DOUBLE) после первого числа в направлении второго числа.

Использование

nextafter(num, num)

Посмотреть примеры
SELECT
    nextafter(1::DOUBLE, 2)  AS result_1,
    nextafter(1::BIGINT, 2)  AS result_2,
    nextafter(-1::BIGINT, 0) AS result_3;
+--------------------+--------------------+---------------------+
|      result_1      |      result_2      |       result_3      |
+--------------------+--------------------+---------------------+
| 1.0000000000000002 | 1.0000000000000002 | -0.9999999999999999 |
+--------------------+--------------------+---------------------+

pi()

Описание

Возвращает значение числа π.

Использование

pi()

Посмотреть примеры
SELECT
    pi()   AS result_1,
    pi()/2 AS result_2,
    2*pi() AS result_3;
+-------------------+--------------------+-------------------+
|      result_1     |      result_2      |      result_3     |
+-------------------+--------------------+-------------------+
| 3.141592653589793 | 1.5707963267948966 | 6.283185307179586 |
+-------------------+--------------------+-------------------+

pow()

Описание

Возводит первый аргумент в степень, заданную вторым аргументом.

Использование

pow(num, num)

Псевдонимы

power()

См. также Оператор ^.

Посмотреть примеры
SELECT
    pow(2, 5)   AS result_1,
    pow(25, -1) AS result_2,
    pow(25, 0)  AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 32       | 0.04     | 1        |
+----------+----------+----------+

radians()

Описание

Переводит градусы в радианы.

Использование

radians(num)

Посмотреть примеры
SELECT
    radians(0)         AS result_1,
    radians(180)       AS result_2,
    radians(-180/pi()) AS result_3;
+----------+-------------------+----------+
| result_1 |      result_2     | result_3 |
+----------+-------------------+----------+
| 0        | 3.141592653589793 | -1       |
+----------+-------------------+----------+

random()

Описание

Возвращает произвольное число (типа DOUBLE) в интервале от 0 до 1.

Использование

random()

См. также setseed().

Посмотреть примеры
SELECT
    random() AS result;
+--------------------+
|       result       |
+--------------------+
| 0.5656213557274057 |
+--------------------+

round_even()

Описание

Округляет число из первого аргумента до ближайшего четного с указанной во втором аргументе точностью.

Использование

round_even(num, num)

Псевдонимы

roundbankers()

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

Подробнее об округлении до ближайшего четного числа см. здесь.

Посмотреть примеры
SELECT
    round_even(4.5, 0)    AS result_1,
    round_even(3.5, 0)    AS result_2,
    round_even(-4.5, 0)   AS result_3,
    round_even(-3.5, 0)   AS result_4,
    round_even(4.45, 1)   AS result_5,
    round_even(4.35, 1)   AS result_6,
    round_even(35.35, -1) AS result_7;
+----------+----------+----------+----------+----------+----------+----------+
| result_1 | result_2 | result_3 | result_4 | result_5 | result_6 | result_7 |
+----------+----------+----------+----------+----------+----------+----------+
| 4        | 4        | -4       | -4       | 4.4      | 4.4      | 40       |
+----------+----------+----------+----------+----------+----------+----------+

round()

Описание

Округляет число из первого аргумента с указанной во втором аргументе точностью.

Использование

round(num, num)

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

Посмотреть примеры
SELECT
    round(4.5, 0)   AS result_1,
    round(4.45, 1)  AS result_2,
    round(44.5, -1) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 5        | 4.5      | 40       |
+----------+----------+----------+

setseed()

Описание

Фиксирует начальное значение для функции random().

Использование

setseed(num)

См. также random().

Посмотреть примеры
SELECT
    setseed(0.5) AS seed,
    random() AS random;
+------+--------------------+
| seed | random             |
+------+--------------------+
| null | 0.8511131886287325 |
+------+--------------------+

sign()

Описание

Возвращает -1, 1 или 0 в зависимости от знака аргумента.

Использование

sign(num)

Посмотреть примеры
SELECT
    sign(10)  AS result_1,
    sign(-10) AS result_2,
    sign(0)   AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 1        | -1       | 0        |
+----------+----------+----------+

signbit()

Описание

Определяет, установлен ли бит знака у вещественного числа.

Использование

signbit(num)

Посмотреть примеры
SELECT
    signbit(-1)                  AS result_1,
    signbit(-'Infinity'::DOUBLE) AS result_2,
    signbit(0)                   AS result_3,
    signbit(1)                   AS result_4,
    signbit('Infinity'::DOUBLE)  AS result_5;
+----------+----------+----------+----------+----------+
| result_1 | result_2 | result_3 | result_4 | result_5 |
+----------+----------+----------+----------+----------+
| true     | true     | false    | false    | false    |
+----------+----------+----------+----------+----------+

sin()

Описание

Вычисляет синус угла, заданного в радианах.

Использование

sin(num)

Посмотреть примеры
SELECT
    sin(0)          AS result_1,
    sin(pi()/2)     AS result_2,
    sin((3*pi())/2) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 0        | 1        | -1       |
+----------+----------+----------+

sqrt()

Описание

Вычисляет квадратный корень.

Использование

sqrt(num)

Число num должно быть неотрицательным.

Посмотреть примеры
SELECT
    sqrt(4)   AS result_1,
    sqrt(144) AS result_2,
    sqrt(0)   AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 2        | 12       | 0        |
+----------+----------+----------+

subtract()

Описание

Вычитает второй аргумент из первого.

Использование

subtract(num, num)

См. также Оператор -.

Посмотреть примеры
SELECT
    subtract(1, 2)     AS result_1,
    subtract(1.1, 2.2) AS result_2,
    subtract(-1, -2)   AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| -1       | -1.1     | 1        |
+----------+----------+----------+

trunc()

Описание

Отбрасывает все знаки после десятичного разделителя.

Использование

trunc(num)

Не следует путать с округлением round.

Посмотреть примеры
SELECT
    trunc(1.99)  AS result_1,
    trunc(-11.9) AS result_2,
    trunc(0.119) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 1        | -11      | 0        |
+----------+----------+----------+

Оператор +

Описание

Прибавляет правый аргумент к левому.

Использование

<num> + <num> [+ ...] или TIME + INTERVAL [+ ...]

Если используется с типами для для даты и времени, то прибавляет интервал к значению времени. Возвращает значение типа TIME.

См. также add().

Посмотреть примеры
SELECT
    3 + 2      AS result_1,
    3 + 2 + -1 AS result_2,
    1.1 + 1.9  AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 5        | 4        | 3.0      |
+----------+----------+----------+
SELECT
    TIME '12:11:10'     + INTERVAL 3 hours AS result_time_1,
    INTERVAL '12:11:10' + TIME '1:1:1'     AS result_time_2;
+---------------+---------------+
| result_time_1 | result_time_2 |
+---------------+---------------+
| 15:11:10      | 13:12:11      |
+---------------+---------------+

Оператор -

Описание

Вычитает правый аргумент из левого.

Использование

<num> - <num> [- ...] или TIME - INTERVAL [- ...]

Если используется с типами для для даты и времени, то вычитает интервал из значения времени. Возвращает значение типа TIME.

См. также subtract().

Посмотреть примеры
SELECT
    3 - 2      AS result_1,
    3 - 2 - +1 AS result_2,
    1.2 - 0.2  AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 1        | 0        | 1.0      |
+----------+----------+----------+
SELECT
    TIME '12:11:10' - INTERVAL 3 HOUR AS result_time_1,
    TIME '12:11:10' - INTERVAL 3 HOUR - INTERVAL 1 HOUR AS result_time_2;
+---------------+---------------+
| result_time_1 | result_time_2 |
+---------------+---------------+
| 09:11:10      | 08:11:10      |
+---------------+---------------+

Оператор *

Описание

Перемножает аргументы.

Использование

<num> * <num>[ * <num>, ...]

См. также multiply().

Посмотреть примеры
SELECT
    3*2     AS result_1,
    3*+2*-2 AS result_2,
    3*0     AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 6        | -12      | 0        |
+----------+----------+----------+

Оператор /

Описание

Делит левый аргумент на правый.

Использование

<num> / <num>[ / <num>, ...]

Возвращает результат в виде числа с переменной точностью (типа DOUBLE).

Посмотреть примеры
SELECT
    3/2     AS result_1,
    3/+2/-2 AS result_2,
    3/1     AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 1.5      | -0.75    | 3        |
+----------+----------+----------+

Оператор %

Описание

Возвращает остаток от деления левого аргумента на правый.

Использование

<num> % <num>[ % <num>, ...]

Посмотреть примеры
SELECT
    3 % 2       AS result_1,
    15 % 10 % 3 AS result_2,
    5 % 2.4     AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 1        | 2        | 0.2      |
+----------+----------+----------+

Оператор ^

Описание

Возводит левый аргумент в степень, заданную правым аргументом.

Использование

<num> ^ <num>[ ^ <num>, ...]

См. также pow().

Посмотреть примеры
SELECT
    2^3   AS result_1,
    2^3^2 AS result_2,
    1^0   AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 8        | 64       | 1        |
+----------+----------+----------+