* DOCSUP-2040: Update by PR#1127. * DOCSUP-2040: Update by PR#11088. * DOCSUP-2040: Update by PR#10923. * DOCSUP-2040: Minor fix. * Update docs/ru/sql-reference/functions/random-functions.md Co-authored-by: Ilya Yatsishin <2159081+qoega@users.noreply.github.com> * Update docs/ru/sql-reference/functions/type-conversion-functions.md Co-authored-by: Ilya Yatsishin <2159081+qoega@users.noreply.github.com> * Update translation. * Update docs/ru/sql-reference/functions/type-conversion-functions.md Co-authored-by: BayoNet <da-daos@yandex.ru> * Update docs/ru/sql-reference/functions/random-functions.md Co-authored-by: BayoNet <da-daos@yandex.ru> * Update docs/ru/sql-reference/functions/type-conversion-functions.md Co-authored-by: BayoNet <da-daos@yandex.ru> * Update docs/ru/sql-reference/functions/type-conversion-functions.md Co-authored-by: BayoNet <da-daos@yandex.ru> Co-authored-by: romanzhukov <romanzhukov@yandex-team.ru> Co-authored-by: Ilya Yatsishin <2159081+qoega@users.noreply.github.com> Co-authored-by: BayoNet <da-daos@yandex.ru>
4.5 KiB
Функции генерации псевдослучайных чисел
Используются не криптографические генераторы псевдослучайных чисел.
Все функции принимают ноль аргументов или один аргумент. В случае, если передан аргумент - он может быть любого типа, и его значение никак не используется. Этот аргумент нужен только для того, чтобы предотвратить склейку одинаковых выражений - чтобы две разные записи одной функции возвращали разные столбцы, с разными случайными числами.
rand
Возвращает псевдослучайное число типа UInt32, равномерно распределённое среди всех чисел типа UInt32. Используется linear congruential generator.
rand64
Возвращает псевдослучайное число типа UInt64, равномерно распределённое среди всех чисел типа UInt64. Используется linear congruential generator.
randConstant
Создает константный столбец с псевдослучайным значением.
Синтаксис
randConstant([x])
Параметры
x
— Выражение, возвращающее значение одного из поддерживаемых типов данных. Значение используется, чтобы избежать склейки одинаковых выражений, если функция вызывается несколько раз в одном запросе. Необязательный параметр.
Возвращаемое значение
- Псевдослучайное число.
Тип: UInt32.
Пример
Запрос:
SELECT rand(), rand(1), rand(number), randConstant(), randConstant(1), randConstant(number)
FROM numbers(3)
Результат:
┌─────rand()─┬────rand(1)─┬─rand(number)─┬─randConstant()─┬─randConstant(1)─┬─randConstant(number)─┐
│ 3047369878 │ 4132449925 │ 4044508545 │ 2740811946 │ 4229401477 │ 1924032898 │
│ 2938880146 │ 1267722397 │ 4154983056 │ 2740811946 │ 4229401477 │ 1924032898 │
│ 956619638 │ 4238287282 │ 1104342490 │ 2740811946 │ 4229401477 │ 1924032898 │
└────────────┴────────────┴──────────────┴────────────────┴─────────────────┴──────────────────────┘
Случайные функции для работы со строками
randomString
randomFixedString
randomPrintableASCII
randomStringUTF8
fuzzBits
Синтаксис
fuzzBits([s], [prob])
Инвертирует каждый бит s
с вероятностью prob
.
Параметры
s
—String
orFixedString
prob
— constantFloat32/64
Возвращаемое значение
Измененная случайным образом строка с тем же типом, что и s
.
Пример
Запрос:
SELECT fuzzBits(materialize('abacaba'), 0.1)
FROM numbers(3)
Результат:
┌─fuzzBits(materialize('abacaba'), 0.1)─┐
│ abaaaja │
│ a*cjab+ │
│ aeca2A │
└───────────────────────────────────────┘
[Оригинальная статья](https://clickhouse.tech/docs/ru/query_language/functions/random_functions/) <!--hide-->