Числовые функции
abs()
add()
ceil()
cos()
divide()
even()
exp()
floor()
fmod()
gcd()
greatest()
isfinite()
isinf()
isnan()
lcm()
least()
lgamma()
ln()
log()
log2()
multiply()
nextafter()
pi()
pow()
radians()
random()
round_even()
round()
setseed()
sign()
signbit()
sin()
sqrt()
subtract()
trunc()
- Оператор
+
- Оператор
-
- Оператор
*
- Оператор
/
- Оператор
%
- Оператор
^
Числовые функции — это функции для работы с данными числовых типов: BIGINT
, NUMERIC
и DOUBLE
.
abs()
Описание |
Вычисляет модуль числа. |
Использование |
|
Посмотреть примеры
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()
Описание |
Складывает числа. |
Использование |
|
См. также Оператор +
.
Посмотреть примеры
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()
Описание |
Округляет число в бОльшую сторону. |
Использование |
|
Псевдонимы |
|
Посмотреть примеры
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()
Описание |
Вычисляет косинус угла, заданного в радианах. |
Использование |
|
Посмотреть примеры
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()
Описание |
Возвращает результат деления в виде целого числа. |
Использование |
|
Посмотреть примеры
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()
Описание |
Округляет до ближайшего четного числа в сторону от нуля. |
Использование |
|
Посмотреть примеры
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()
Описание |
Вычисляет экспоненту числа. |
Использование |
|
Вычисляет экспоненциальное значение числа: .
Посмотреть примеры
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()
Описание |
Округляет число в меньшую сторону. |
Использование |
|
Посмотреть примеры
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()
Описание |
Возвращает остаток от деления первого аргумента на второй. |
Использование |
|
Посмотреть примеры
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()
Описание |
Вычисляет наибольший общий делитель двух чисел. |
Использование |
|
Псевдонимы |
|
Посмотреть примеры
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()
Описание |
Возвращает наибольшее число из указанных в аргументах. |
Использование |
|
Посмотреть примеры
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()
Описание |
Проверяет, является ли число конечным. |
Использование |
|
Посмотреть примеры
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()
Описание |
Проверяет, является ли число бесконечным. |
Использование |
|
Посмотреть примеры
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()
Описание |
Проверяет, имеет ли аргумент значение |
Использование |
|
Посмотреть примеры
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()
Описание |
Вычисляет наименьшее общее кратное двух чисел. |
Использование |
|
Псевдонимы |
|
Посмотреть примеры
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()
Описание |
Возвращает наименьшее число из указанных в аргументах. |
Использование |
|
Посмотреть примеры
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()
Описание |
Вычисляет логарифм гамма-функции. |
Использование |
|
Посмотреть примеры
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()
Описание |
Вычисляет натуральный логарифм числа. |
Использование |
|
Посмотреть примеры
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()
Описание |
Вычисляет логарифм числа по основанию |
Использование |
|
Псевдонимы |
|
Посмотреть примеры
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()
Описание |
Вычисляет логарифм числа по основанию |
Использование |
|
Посмотреть примеры
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()
Описание |
Перемножает два числа. |
Использование |
|
См. также Оператор *
.
Посмотреть примеры
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()
Описание |
Возвращает следующее значение с переменной точностью (типа |
Использование |
|
Посмотреть примеры
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()
Описание |
Возвращает значение числа π. |
Использование |
|
Посмотреть примеры
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()
Описание |
Возводит первый аргумент в степень, заданную вторым аргументом. |
Использование |
|
Псевдонимы |
|
См. также Оператор ^
.
Посмотреть примеры
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()
Описание |
Переводит градусы в радианы. |
Использование |
|
Посмотреть примеры
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 |
+----------+-------------------+----------+
round_even()
Описание |
Округляет число из первого аргумента до ближайшего четного с указанной во втором аргументе точностью. |
Использование |
|
Псевдонимы |
|
Второй аргумент указывает на количество десятичных знаков точности и может быть отрицательным числом.
Подробнее об округлении до ближайшего четного числа см. здесь.
Посмотреть примеры
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()
Описание |
Округляет число из первого аргумента с указанной во втором аргументе точностью. |
Использование |
|
Второй аргумент указывает на количество десятичных знаков точности и может быть отрицательным числом.
Посмотреть примеры
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()
.
Посмотреть примеры
SELECT
setseed(0.5) AS seed,
random() AS random;
+------+--------------------+
| seed | random |
+------+--------------------+
| null | 0.8511131886287325 |
+------+--------------------+
sign()
Описание |
Возвращает |
Использование |
|
Посмотреть примеры
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()
Описание |
Определяет, установлен ли бит знака у вещественного числа. |
Использование |
|
Посмотреть примеры
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()
Описание |
Вычисляет синус угла, заданного в радианах. |
Использование |
|
Посмотреть примеры
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()
Описание |
Вычисляет квадратный корень. |
Использование |
|
Число 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()
Описание |
Вычитает второй аргумент из первого. |
Использование |
|
См. также Оператор -
.
Посмотреть примеры
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()
Описание |
Отбрасывает все знаки после десятичного разделителя. |
Использование |
|
Не следует путать с округлением 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 |
+----------+----------+----------+
Оператор +
Описание |
Прибавляет правый аргумент к левому. |
Использование |
|
Если используется с типами для для даты и времени, то прибавляет интервал к значению времени. Возвращает значение типа 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 |
+---------------+---------------+
Оператор -
Описание |
Вычитает правый аргумент из левого. |
Использование |
|
Если используется с типами для для даты и времени, то вычитает интервал из значения времени. Возвращает значение типа 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 |
+---------------+---------------+
Оператор *
Описание |
Перемножает аргументы. |
Использование |
|
См. также 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 |
+----------+----------+----------+
Оператор /
Описание |
Делит левый аргумент на правый. |
Использование |
|
Возвращает результат в виде числа с переменной точностью (типа 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 |
+----------+----------+----------+
Оператор %
Описание |
Возвращает остаток от деления левого аргумента на правый. |
Использование |
|
Посмотреть примеры
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 |
+----------+----------+----------+
Оператор ^
Описание |
Возводит левый аргумент в степень, заданную правым аргументом. |
Использование |
|
См. также 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 |
+----------+----------+----------+