Математические функции и операторы#

Математические операторы#

Оператор

Описание

+

Сложение

-

Вычитание

*

Умножение

/

Деление (целочисленное деление усечено)

%

Модуль (остаток)

Математические функции#

abs(x) [same as input]#

Возвращает абсолютное значение x.

cbrt(x) double#

Возвращает кубический корень из x.

ceil(x) [same as input]#

Это псевдоним для ceiling().

ceiling(x) [same as input]#

Возвращает x, округленное вверх до ближайшего целого.

degrees(x) double#

Преобразует угол x из радиан в градусы.

e() double#

Возвращает константу — число Эйлера.

exp(x) double#

Возвращает число Эйлера в степени x.

floor(x) [same as input]#

Возвращает x, округленное вниз до ближайшего целого.

ln(x) double#

Возвращает натуральный логарифм x.

log(b, x) double#

Возвращает логарифм x по основанию b.

log2(x) double#

Возвращает логарифм x по основанию 2.

log10(x) double#

Возвращает логарифм x по основанию 10.

mod(n, m) [same as input]#

Возвращает модуль (остаток) от деления n на m.

pi() double#

Возвращает константу Pi.

pow(x, p) double#

Это псевдоним для power().

power(x, p) double#

Возвращает x в степени p.

radians(x) double#

Преобразует угол x из градусов в радианы.

round(x) [same as input]#

Возвращает x, округленное до ближайшего целого.

round(x, d) [same as input]

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

sign(x) [same as input]#

Возвращает функцию signum для x, то есть:

  • 0, если аргумент равен 0,

  • 1, если аргумент больше 0,

  • -1, если аргумент меньше 0.

Для аргументов с плавающей точкой функция дополнительно возвращает:

  • -0, если аргумент равен -0,

  • NaN, если аргумент равен NaN,

  • 1, если аргумент равен +Infinity,

  • -1, если аргумент равен -Infinity.

sqrt(x) double#

Возвращает квадратный корень из x.

truncate(x) double#

Возвращает x, округленное до целого путем отбрасывания цифр после десятичной точки.

width_bucket(x, bound1, bound2, n) bigint#

Возвращает номер корзины для x в гистограмме равной ширины с заданными границами bound1 и bound2 и количеством корзин n.

width_bucket(x, bins) bigint

Возвращает номер корзины для x в соответствии с корзинами, заданными массивом bins. Параметр bins должен быть массивом double и предполагается, что он отсортирован по возрастанию.

Случайные функции#

rand() double#

Это псевдоним для random().

random() double#

Возвращает псевдослучайное значение в диапазоне 0.0 <= x < 1.0.

random(n) [same as input]

Возвращает псевдослучайное число между 0 и n (не включая n).

random(m, n) [same as input]

Возвращает псевдослучайное число между m и n (не включая границы).

Тригонометрические функции#

Все аргументы тригонометрических функций выражаются в радианах. См. функции преобразования единиц degrees() и radians().

acos(x) double#

Возвращает арккосинус x.

asin(x) double#

Возвращает арксинус x.

atan(x) double#

Возвращает арктангенс x.

atan2(y, x) double#

Возвращает арктангенс y / x.

cos(x) double#

Возвращает косинус x.

cosh(x) double#

Возвращает гиперболический косинус x.

sin(x) double#

Возвращает синус x.

sinh(x) double#

Возвращает гиперболический синус x.

tan(x) double#

Возвращает тангенс x.

tanh(x) double#

Возвращает гиперболический тангенс x.

Геометрические функции#

cosine_distance(array(double), array(double)) double#

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

SELECT cosine_distance(ARRAY[1.0, 2.0], ARRAY[3.0, 4.0]);
-- 0.01613008990009257
cosine_distance(x, y) double

Вычисляет косинусное расстояние между двумя разреженными векторами:

SELECT cosine_distance(MAP(ARRAY['a'], ARRAY[1.0]), MAP(ARRAY['a'], ARRAY[2.0]));
-- 0.0
cosine_similarity(array(double), array(double)) double#

Вычисляет косинусное сходство двух плотных векторов:

SELECT cosine_similarity(ARRAY[1.0, 2.0], ARRAY[3.0, 4.0]);
-- 0.9838699100999074
cosine_similarity(x, y) double

Вычисляет косинусное сходство двух разреженных векторов:

SELECT cosine_similarity(MAP(ARRAY['a'], ARRAY[1.0]), MAP(ARRAY['a'], ARRAY[2.0]));
-- 1.0

Функции с плавающей точкой#

infinity() double#

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

is_finite(x) boolean#

Определяет, является ли x конечным.

is_infinite(x) boolean#

Определяет, является ли x бесконечным.

is_nan(x) boolean#

Определяет, является ли x not-a-number.

nan() double#

Возвращает константу, представляющую not-a-number.

Функции преобразования оснований#

from_base(string, radix) bigint#

Возвращает значение string, интерпретируемое как число в системе счисления с основанием radix.

to_base(x, radix) varchar#

Возвращает представление x в системе счисления с основанием radix.

Статистические функции#

t_pdf(x, df) double#

Вычисляет функцию плотности вероятности t-распределения Стьюдента для заданных x и числа степеней свободы (df). x должен быть вещественным значением, а число степеней свободы — целым положительным значением.

wilson_interval_lower(successes, trials, z) double#

Возвращает нижнюю границу интервала Уилсона для процесса испытаний Бернулли при доверительном уровне, заданном z-оценкой z.

wilson_interval_upper(successes, trials, z) double#

Возвращает верхнюю границу интервала Уилсона для процесса испытаний Бернулли при доверительном уровне, заданном z-оценкой z.

Функции накопительного распределения#

beta_cdf(a, b, v) double#

Вычисляет Beta cdf с заданными параметрами a, b: P(N < v; a, b). Параметры a, b должны быть положительными вещественными числами, а значение v должно быть вещественным. Значение v должно лежать в интервале [0, 1].

inverse_beta_cdf(a, b, p) double#

Вычисляет обратную функцию Beta cdf с заданными параметрами a, b для накопленной вероятности (p): P(N < n). Параметры a, b должны быть положительными вещественными значениями. Вероятность p должна лежать в интервале [0, 1].

inverse_normal_cdf(mean, sd, p) double#

Вычисляет обратную функцию Normal cdf с заданными средним и стандартным отклонением (sd) для накопленной вероятности (p): P(N < n). Среднее должно быть вещественным значением, а стандартное отклонение должно быть вещественным положительным значением. Вероятность p должна лежать в интервале (0, 1).

normal_cdf(mean, sd, v) double#

Вычисляет Normal cdf с заданными средним и стандартным отклонением (sd): P(N < v; mean, sd). Среднее и значение v должны быть вещественными значениями, а стандартное отклонение должно быть вещественным положительным значением.

t_cdf(x, df) double#

Вычисляет функцию накопительной плотности t-распределения Стьюдента для заданных x и числа степеней свободы (df). Значение x должно быть вещественным, а число степеней свободы должно быть целым положительным значением.