Все функции в этом разделе принимают ноль или один аргумент. Единственное назначение аргумента (если он указан) — предотвратить устранение общих подвыражений, чтобы два разных вызова одной и той же функции генерации случайных чисел в пределах одной строки возвращали разные случайные значения.
Связанные материалы
- Руководство: Генерация случайных данных в ClickHouse
- Блог: Генерация случайных данных в ClickHouse
fuzzBits
Добавленный в: v20.5.0
Инвертирует биты во входной строке s с вероятностью p для каждого бита.
Синтаксис
fuzzBits(s, p)Аргументы
s—StringилиFixedString, над которыми выполняется побитовое фаззинг-искажение,StringилиFixedStringp— Вероятность инверсии каждого бита, число от0.0до1.0Float*
Возвращаемое значение
Возвращает строку с фаззинг-искажением того же типа, что и s: String или FixedString
Примеры
Пример использования
SELECT fuzzBits(materialize('abacaba'), 0.1)
FROM numbers(3)┌─fuzzBits(materialize('abacaba'), 0.1)─┐
│ abaaaja │
│ a*cjab+ │
│ aeca2A │
└───────────────────────────────────────┘rand
Добавленный в: v1.1.0
Возвращает случайное число UInt32 с равномерным распределением.
Использует некриптографический псевдослучайный генератор с начальным состоянием, получаемым из системы, то есть, хотя результат и выглядит случайным, на самом деле он не является по-настоящему случайным и может быть предсказан, если известно начальное состояние. Если вам нужна истинная случайность, используйте альтернативные методы, например системные вызовы или интеграцию с внешними библиотеками.
Синтаксис
rand([x])Псевдонимы: rand32
Аргументы
x— необязательный, игнорируется. Единственное назначение этого аргумента — предотвратить устранение общих подвыражений, если один и тот же вызов функции используется в запросе несколько раз.Any
Возвращаемое значение
Возвращает случайное число типа UInt32. UInt32
Примеры
Пример использования
SELECT rand();1569354847rand64
Добавленный в: v1.1.0
Возвращает случайное равномерно распределённое число UInt64.
Использует некриптографический псевдослучайный генератор с начальным состоянием, полученным из системы. Это означает, что, хотя результат выглядит случайным, он не является по-настоящему случайным и может быть предсказуем, если известно начальное состояние. В случаях, когда критически важна истинная случайность, используйте альтернативные методы, например системные вызовы или интеграцию с внешними библиотеками.
Синтаксис
rand64([x])Аргументы
x— необязательный аргумент, который игнорируется. Единственное назначение этого аргумента — предотвратить устранение общих подвыражений, когда один и тот же вызов функции используется в запросе несколько раз.Any
Возвращаемое значение
Возвращает случайное число типа UInt64 с равномерным распределением. UInt64
Примеры
Пример использования
SELECT rand64();15030268859237645412randBernoulli
Добавленный в: v22.10.0
Возвращает случайное число типа Float64, взятое из распределения Бернулли.
Синтаксис
randBernoulli(probability[, x])Аргументы
probability— Вероятность успеха в виде значения в диапазоне от0до1.Float64x— Необязательный аргумент, который игнорируется. Его единственное назначение — предотвратить устранение общих подвыражений, когда один и тот же вызов функции используется в запросе несколько раз.Any
Возвращаемое значение
Возвращает случайное число Float64, сгенерированное из указанного распределения Бернулли. UInt64
Примеры
Пример использования
SELECT randBernoulli(.75) FROM numbers(5)┌─randBernoulli(0.75)─┐
│ 1 │
│ 1 │
│ 0 │
│ 1 │
│ 1 │
└─────────────────────┘randBinomial
Добавленный в: v22.10.0
Возвращает случайное число типа Float64 из биномиального распределения.
Синтаксис
randBinomial(experiments, probability[, x])Аргументы
experiments— Количество испытанийUInt64probability— Вероятность успеха в каждом испытании, значение от0до1Float64x— Необязательный аргумент, который игнорируется. Его единственное назначение — предотвратить устранение общих подвыражений, если один и тот же вызов функции используется в запросе несколько раз.Any
Возвращаемое значение
Возвращает случайное число Float64, сгенерированное по указанному биномиальному распределению. UInt64
Примеры
Пример использования
SELECT randBinomial(100, .75) FROM numbers(5)┌─randBinomial(100, 0.75)─┐
│ 74 │
│ 78 │
│ 76 │
│ 77 │
│ 80 │
└─────────────────────────┘randCanonical
Добавленный в: v22.11.0
Возвращает случайное число типа Float64 с равномерным распределением в диапазоне от 0 (включительно) до 1 (не включая).
Синтаксис
randCanonical([x])Аргументы
x— необязательный аргумент, который игнорируется. Его единственное назначение — предотвратить устранение общих подвыражений, когда один и тот же вызов функции используется в запросе несколько раз.Any
Возвращаемое значение
Возвращает случайное число типа Float64. Float64
Примеры
Пример использования
SELECT randCanonical();0.345217890123456randChiSquared
Добавленный в: v22.10.0
Возвращает случайное число типа Float64, полученное из хи-квадрат-распределения.
Синтаксис
randChiSquared(degree_of_freedom[, x])Аргументы
degree_of_freedom— Число степеней свободы.Float64x— Необязательный параметр, который игнорируется. Его единственная цель — предотвратить устранение общих подвыражений, когда один и тот же вызов функции используется несколько раз в запросе.Any
Возвращаемое значение
Возвращает случайное число типа Float64 из указанного распределения хи-квадрат. Float64
Примеры
Пример использования
SELECT randChiSquared(10) FROM numbers(5)┌─randChiSquared(10)─┐
│ 10.015463656521543 │
│ 9.621799919882768 │
│ 2.71785015634699 │
│ 11.128188665931908 │
│ 4.902063104425469 │
└────────────────────┘randConstant
Добавленный в: v1.1.0
Генерирует одно случайное значение, которое остается неизменным для всех строк при выполнении текущего запроса.
Эта функция:
- Возвращает одно и то же случайное значение для каждой строки в рамках одного запроса
- Возвращает разные значения при отдельных выполнениях запроса
Полезна, когда нужно использовать одинаковые начальные значения генератора случайных чисел или идентификаторы для всех строк в наборе данных
Синтаксис
randConstant([x])Аргументы
x— необязательный и игнорируется. Единственное назначение этого аргумента — предотвращать устранение общих подвыражений, когда один и тот же вызов функции используется в запросе несколько раз.Any
Возвращаемое значение
Возвращает столбец типа UInt32, содержащий одно и то же случайное значение в каждой строке. UInt32
Примеры
Базовое использование
SELECT randConstant() AS random_value;| random_value |
|--------------|
| 1234567890 |Использование с параметром
SELECT randConstant(10) AS random_value;| random_value |
|--------------|
| 9876543210 |randExponential
Добавленный в: v22.10.0
Возвращает случайное число типа Float64, сгенерированное в соответствии с экспоненциальным распределением.
Синтаксис
randExponential(lambda[, x])Аргументы
lambda— Параметр интенсивности, или λ-значение распределения.Float64x— Необязательный, игнорируется. Единственное назначение этого аргумента — предотвратить устранение общих подвыражений, когда один и тот же вызов функции используется в запросе несколько раз.Any
Возвращаемое значение
Возвращает случайное число типа Float64 из указанного экспоненциального распределения. Float64
Примеры
Пример использования
SELECT randExponential(1/10) FROM numbers(5)┌─randExponential(divide(1, 10))─┐
│ 44.71628934340778 │
│ 4.211013337903262 │
│ 10.809402553207766 │
│ 15.63959406553284 │
│ 1.8148392319860158 │
└────────────────────────────────┘randFisherF
Добавленный в: v22.10.0
Возвращает случайное число Float64 из F-распределения.
Синтаксис
randFisherF(d1, d2[, x])Аргументы
d1— число степеней свободы d1 вX = (S1 / d1) / (S2 / d2).Float64d2— число степеней свободы d2 вX = (S1 / d1) / (S2 / d2).Float64x— Необязателен и игнорируется. Единственное назначение этого аргумента — предотвратить устранение общих подвыражений, когда один и тот же вызов функции используется в запросе несколько раз.Any
Возвращаемое значение
Возвращает случайное число типа Float64 из указанного F-распределения Float64
Примеры
Пример использования
SELECT randFisherF(10, 3) FROM numbers(5)┌─randFisherF(10, 20)─┐
│ 0.7204609609506184 │
│ 0.9926258472572916 │
│ 1.4010752726735863 │
│ 0.34928401507025556 │
│ 1.8216216009473598 │
└─────────────────────┘randLogNormal
Добавленный в: v22.10.0
Возвращает случайное число Float64, выбранное из логнормального распределения.
Синтаксис
randLogNormal(mean, stddev[, x])Аргументы
mean— Среднее значение распределения.Float64stddev— Стандартное отклонение распределения.Float64x— Необязательный аргумент, который игнорируется. Единственное назначение этого аргумента — предотвратить устранение общих подвыражений, если один и тот же вызов функции используется в запросе несколько раз.Any
Возвращаемое значение
Возвращает случайное число типа Float64 из указанного логнормального распределения. Float64
Примеры
Пример использования
SELECT randLogNormal(100, 5) FROM numbers(5)┌─randLogNormal(100, 5)─┐
│ 1.295699673937363e48 │
│ 9.719869109186684e39 │
│ 6.110868203189557e42 │
│ 9.912675872925529e39 │
│ 2.3564708490552458e42 │
└───────────────────────┘randNegativeBinomial
Добавленный в: v22.10.0
Возвращает случайное число типа Float64 из отрицательного биномиального распределения.
Синтаксис
randNegativeBinomial(experiments, probability[, x])Аргументы
experiments— Число экспериментов.UInt64probability—Вероятность неудачи в каждом эксперименте, задаваемая значением от0до1. [Float64`](/reference/data-types/float)x— Необязательный и игнорируется. Единственное назначение этого аргумента — предотвращать устранение общих подвыражений, когда один и тот же вызов функции используется в запросе несколько раз.Any
Возвращаемое значение
Возвращает случайное число типа Float64 из указанного отрицательного биномиального распределения UInt64
Примеры
Пример использования
SELECT randNegativeBinomial(100, .75) FROM numbers(5)┌─randNegativeBinomial(100, 0.75)─┐
│ 33 │
│ 32 │
│ 39 │
│ 40 │
│ 50 │
└─────────────────────────────────┘randNormal
Добавленный в: v22.10.0
Возвращает случайное число Float64 из нормального распределения.
Синтаксис
randNormal(mean, stddev[, x])Аргументы
mean— Среднее значение распределенияFloat64stddev— Стандартное отклонение распределенияFloat64x— Необязательный аргумент, который игнорируется. Его единственное назначение — предотвращать устранение общих подвыражений, когда один и тот же вызов функции используется в запросе несколько раз.Any
Возвращаемое значение
Возвращает случайное число Float64, выбранное из указанного нормального распределения. Float64
Примеры
Пример использования
SELECT randNormal(10, 2) FROM numbers(5)┌──randNormal(10, 2)─┐
│ 13.389228911709653 │
│ 8.622949707401295 │
│ 10.801887062682981 │
│ 4.5220192605895315 │
│ 10.901239123982567 │
└────────────────────┘randPoisson
Добавленный в: v22.10.0
Возвращает случайное число типа Float64, выбранное из распределения Пуассона.
Синтаксис
randPoisson(n[, x])Аргументы
n— Среднее число событий.UInt64x— Необязательный аргумент, который игнорируется. Его единственное назначение — предотвратить устранение общих подвыражений, когда один и тот же вызов функции используется несколько раз в запросе.Any
Возвращаемое значение
Возвращает случайное число Float64, полученное из указанного распределения Пуассона. UInt64
Примеры
Пример использования
SELECT randPoisson(10) FROM numbers(5)┌─randPoisson(10)─┐
│ 8 │
│ 8 │
│ 7 │
│ 10 │
│ 6 │
└─────────────────┘randStudentT
Добавленный в: v22.10.0
Возвращает случайное число типа Float64, взятое из t-распределения Стьюдента.
Синтаксис
randStudentT(degree_of_freedom[, x])Аргументы
degree_of_freedom— Число степеней свободы.Float64x— Необязательный аргумент, который игнорируется. Его единственное назначение — предотвратить устранение общих подвыражений, когда один и тот же вызов функции используется в запросе несколько раз.Any
Возвращаемое значение
Возвращает случайное число типа Float64, сгенерированное из указанного t-распределения Стьюдента. Float64
Примеры
Пример использования
SELECT randStudentT(10) FROM numbers(5)┌─────randStudentT(10)─┐
│ 1.2217309938538725 │
│ 1.7941971681200541 │
│ -0.28192176076784664 │
│ 0.2508897721303792 │
│ -2.7858432909761186 │
└──────────────────────┘randUniform
Добавленный в: v22.10.0
Возвращает случайное число типа Float64, равномерно распределённое в интервале [\min, \max].
Синтаксис
randUniform(min, max[, x])Аргументы
min— Левая граница диапазона (включительно).Float64max— Правая граница диапазона (включительно).Float64x— Необязателен и игнорируется. Единственная цель этого аргумента — предотвратить устранение общих подвыражений, когда один и тот же вызов функции используется несколько раз в запросе.Any
Возвращаемое значение
Возвращает случайное число с равномерным распределением на интервале между min и max. Float64
Примеры
Пример использования
SELECT randUniform(5.5, 10) FROM numbers(5)┌─randUniform(5.5, 10)─┐
│ 8.094978491443102 │
│ 7.3181248914450885 │
│ 7.177741903868262 │
│ 6.483347380953762 │
│ 6.122286382885112 │
└──────────────────────┘randomFixedString
Добавленный в: v20.5.0
Генерирует случайную строку фиксированной длины с указанным количеством символов. Возвращаемые символы не обязательно являются ASCII-символами, то есть могут быть непечатными.
Синтаксис
randomFixedString(length)Аргументы
length— Длина строки в байтах.UInt*
Возвращаемое значение
Возвращает строку, заполненную случайными байтами. FixedString
Примеры
Пример использования
SELECT randomFixedString(13) AS rnd, toTypeName(rnd)┌─rnd────────┬─toTypeName(randomFixedString(13))─┐
│ j▒h㋖HɨZ'▒ │ FixedString(13) │
└────────────┴───────────────────────────────────┘randomPrintableASCII
Добавленный в: v20.1.0
Генерирует случайную ASCII-строку указанной длины.
Если передать length < 0, поведение функции не определено.
Синтаксис
randomPrintableASCII(length[, x])Аргументы
length— Длина строки в байтах.(U)Int*x— Необязательный игнорируемый параметр. Единственное назначение этого аргумента — предотвращать устранение общих подвыражений, когда один и тот же вызов функции используется в запросе несколько раз.Any
Возвращаемое значение
Возвращает строку со случайным набором печатных символов ASCII. String
Примеры
Пример использования
SELECT number, randomPrintableASCII(30) AS str, length(str) FROM system.numbers LIMIT 3┌─number─┬─str────────────────────────────┬─length(randomPrintableASCII(30))─┐
│ 0 │ SuiCOSTvC0csfABSw=UcSzp2.`rv8x │ 30 │
│ 1 │ 1Ag NlJ &RCN:*>HVPG;PE-nO"SUFD │ 30 │
│ 2 │ /"+<"with:=LjJ Vm!c&hI*m#XTfzz │ 30 │
└────────┴────────────────────────────────┴──────────────────────────────────┘randomString
Добавленный в: v20.5.0
Генерирует случайную строку с указанным количеством символов. Возвращаемые символы не обязательно относятся к ASCII, то есть могут быть непечатаемыми.
Синтаксис
randomString(length[, x])Аргументы
length— Длина строки в байтах.(U)Int*x— Необязательный аргумент, который игнорируется. Его единственное назначение — предотвращать устранение общих подвыражений, когда один и тот же вызов функции используется в запросе несколько раз.Any
Возвращаемое значение
Возвращает строку, заполненную случайными байтами. String
Примеры
Пример использования
SELECT randomString(5) AS str FROM numbers(2)���
�v6B�randomStringUTF8
Добавленный в: v20.5.0
Генерирует случайную UTF-8 строку с указанным количеством кодовых точек. Кодовые точки из неназначенных плоскостей (с 4-й по 13-ю) не возвращаются. Однако клиент, взаимодействующий с сервером ClickHouse, всё же может не суметь корректно отобразить полученную строку UTF-8.
Синтаксис
randomStringUTF8(length)Аргументы
length— Длина строки в кодовых точках.(U)Int*
Возвращаемое значение
Возвращает строку из случайных кодовых точек UTF-8. String
Примеры
Пример использования
SELECT randomStringUTF8(13)┌─randomStringUTF8(13)─┐
│ 𲉗𩍄ԍ╃𑄅 │
└──────────────────────┘