RANDOM в PostgreSQL: генерация случайного числа

Функция RANDOM в PostgreSQL используется для генерации случайного числа с плавающей запятой в диапазоне от 0 до 1.

Синтаксис

RANDOM()

Функция не принимает аргументов и возвращает псевдослучайное число в диапазоне [0, 1), где 0 включительно, а 1 — нет.

Примеры использования

Генерация случайного числа

SELECT RANDOM();  -- Пример результата: 0.8345937291

Генерация случайного числа в определённом диапазоне

Для получения случайного числа в диапазоне [a, b] используется следующая формула:

SELECT a + (b - a) * RANDOM();

Например, генерация случайного числа от 10 до 50:

SELECT 10 + (50 - 10) * RANDOM();

Генерация случайного целого числа

Для получения случайного целого числа используется функция FLOOR:

SELECT FLOOR(RANDOM() * 10);  -- Число от 0 до 9
SELECT FLOOR(10 + (50 - 10 + 1) * RANDOM());  -- Число от 10 до 50

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

SELECT id, name, RANDOM() AS rand_value FROM users;

Этот запрос добавляет случайное число для каждой строки в таблице users.

Особенности

  • Функция RANDOM генерирует псевдослучайные числа, основанные на генераторе случайных чисел PostgreSQL.
  • Для получения повторяемых значений в RANDOM перед выполнением запроса вызывается SETSEED с определённым значением.
SELECT SETSEED(0.5);
SELECT RANDOM();  -- При одинаковом seed результат будет повторяться
  • RANDOM полезна при выборке случайных данных, например, для получения случайной строки из таблицы:
SELECT * FROM users ORDER BY RANDOM() LIMIT 1;