Иллюстрированный самоучитель по PostgreSQL

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

atan()

Синтаксис:

atan(x)

Функция atan() возвращает арктангенс аргумента х, относящегося к типу double recision. Фактически является обратной по отношению к функции tan(). Результат представляет собой угол (в радианах) в интервале от -π/2 до π/2, выраженный типом double precision.

Пример:

testdb=# SELECT atan(l) .atan(O) .atan(-l),
testdb-# atan(tand)) AS inverse_example;
atan atan | atan | inverse_example
0.785398163397448 | 0 | -0.785398163397448 | 1
(1 row)

atan2()

Синтаксис:

atan2(x.y)

По аналогии с функцией atan(), функция atan2() возвращает арктангенс, то есть угол (в радианах) в интервале от -π/2 до π/2, выраженный типом double precision. Однако в отличие от atan() она получает два аргумента типа double precision вместо одного и возвращает арктангенс величины, полученной делением первого аргумента на второй.

В общем случае вызов функции atan2(x,y) эквивалентен вызову atan(x/y), но при передаче аргумента у=0 функции atan2() не происходит ошибки деления на ноль, как при вызове atan() для величины х/у. Если аргумент у равен нулю, функция atan2() возвращает π/2 для положительных значений х, -π/2 для отрицательных х и 0 для х=0.

Пример:

testdb=# SELECT atan2(0, 1) .atan2(l, 1),
testdb-# atanCO / 1) AS functionally.
testdb-# atand / 1) AS identical;
atan2 atan2 | functionally identical
0 i 0.785398163397448 | 0 | 0.785398163397448 (1 row)
testdb=# SELECT atan2(l, 0) AS positive_x.
testdb-# atan2(-l, 0) AS negative_x,
testdb-# atan2(0, 0) AS zero_x,
testdb-i pi() / 2 AS pi_over_two:
positive_x | negative_x | zero_x \ pi_over_two
1.5707963267949 | -1.5707963267949 | 0 | 1.5707963267949
(1 row)

cbrt()

Синтаксис:

cbrt()

Функция cbrt () получает один числовой аргумент х типа double precision и возвращает кубический корень, также представленный типом double precision. Фактически является обратной по отношению к функции pow(), выполняющей возведение в третью степень.

Пример:

testdb=# SELECT pow(2.0. 3) AS "two cubed".
testdb-# cbrt(8.0) AS "eight's cube root";
two cubed | eight's cube root
8 | 2
(1 row)
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.