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