Функция 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;