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

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

random ()

Синтаксис:

randon ()

Функция random() вызывается без аргументов и возвращает псевдослучайное число типа double precision в интервале от 0.0 до 1.0. При каждом вызове random() генерируется новое значение, даже если функция вызывается несколько раз в одном запросе.

Обычно функция random() используется в сочетании с математическими операторами (например, + и *) для получения псевдослучайных чисел в заданном интервале и последующим вызовом одной из функций округления (round(), trunc() и т. д.).

Пример:

testdb=# SELECT randonK) AS natural random,
testdb-# round(randomO * 9) + I AS one_through_ten.
testdb-# truncC randonK) * 99) + 1 AS one_through_one_hundred:
natural_random | one_through_ten | one_through_one_hundred
0.478887704424042 | 2 | 37
(1 row)

round ()

Синтаксис:

round(x) round(x.s)

Функция round() вызывается с одним или с двумя аргументами. Первый аргумент х относится к типу numeric или double precision и определяет округляемое число. Второй необязательный аргумент s относится к типу integer и определяет количество цифр в дробной части после округления. Тип возвращаемого значения совпадает с типом первого аргумента.

Если значение аргумента s больше количества цифр в дробной части х, недостающие позиции заполняются нулями.

Пример:

testdb=# SELECT round(l.O) AS one,
testdb-# round(l.l) AS "one point one",
testdb | round(1.5) AS "one point five",
testdb-# roundd.8) AS "one point eight";
one | one point one |
one point five | one point eight
1 | 1 | 2 | 2
(1 row)

testdb=# SELECT round(1.4949. 1) AS one_digit_scale.
testdb-# roundd.4949, 3) AS three_digit_scale.
testdb-# roundd.4949, 10) AS ten_digit_scale.
testdb-# roundd.4949. 0) AS rounded;
one_digit_scale | three_digit_scale | ten_digit_scale rounded
1.5 1.495 | 1.4949000000 1
(1 row)

Sin()

Синтаксис:

Sin(x)

Функция sin () получает один аргумент х типа double precision, представляющий угол в радианах, и возвращает синус этого угла в виде значения типа double precision.

Пример:

testdb=# SELECT sin(pi() / 4) AS quarter_pi,
testdb-# sin(pi() / 2) AS half_pi:
quarter_pi | half_pi
0.707106781186547 |
(1 row)
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.