Функции для генерации случайных чисел
Все функции в этом разделе принимают ноль или один аргумент. Единственное назначение аргумента (если он передан) — предотвратить устранение общих подвыражений, чтобы два разных вызова одной и той же случайной функции в пределах одной строки возвращали разные случайные значения.
Связанные материалы
- Руководство: Генерация случайных данных в ClickHouse
- Блог: Генерация случайных данных в ClickHouse
Случайные числа генерируются некриптографическими алгоритмами.
Документация ниже сгенерирована из системной таблицы system.functions.
fuzzBits
Появилась в версии v20.5
Инвертирует биты входной строки s с вероятностью p для каждого бита.
Синтаксис
Аргументы
s—StringилиFixedString, над которыми выполняется битовое зашумлениеStringилиFixedStringp— вероятность инверсии каждого бита как число с плавающей запятой в диапазоне от0.0до1.0Float*
Возвращаемое значение
Возвращает зашумлённую строку того же типа, что и s. String или FixedString
Примеры
Пример использования
rand
Впервые добавлена в: v1.1
Возвращает случайное число типа UInt32 с равномерным распределением.
Использует линейный конгруэнтный генератор с начальным состоянием, полученным из системы. Это означает, что, хотя результат выглядит случайным, он не является по-настоящему случайным и может быть предсказуем, если известно начальное состояние. В сценариях, где критична истинная случайность, рассмотрите использование альтернативных методов, таких как системные вызовы или интеграция с внешними библиотеками.
Синтаксис
Псевдонимы: rand32
Аргументы
x— необязательный аргумент, который игнорируется. Единственная цель этого аргумента — предотвратить устранение общих подвыражений, когда один и тот же вызов функции используется несколько раз в запросе.Any
Возвращаемое значение
Возвращает случайное число типа UInt32. UInt32
Примеры
Пример использования
rand64
Впервые появилась в: v1.1
Возвращает случайное число типа UInt64 с равномерным распределением.
Использует линейный конгруэнтный генератор с начальным состоянием, полученным из системы. Это означает, что, хотя результат выглядит случайным, он не является по-настоящему случайным и может быть предсказуем, если начальное состояние известно. В сценариях, где критична истинная случайность, используйте альтернативные методы, такие как системные вызовы или интеграция с внешними библиотеками.
Синтаксис
Аргументы
x— необязательный аргумент, значение игнорируется. Единственная цель аргумента — предотвратить устранение общих подвыражений, когда один и тот же вызов функции используется несколько раз в запросе.Any
Возвращаемое значение
Возвращает случайное число типа UInt64 с равномерным распределением. UInt64
Примеры
Пример использования
randBernoulli
Появилась в версии: v22.10
Возвращает случайное число типа Float64, сгенерированное по распределению Бернулли.
Синтаксис
Аргументы
probability— Вероятность успеха в виде значения в диапазоне от0до1.Float64x— Необязательный аргумент, который игнорируется. Его единственная цель — предотвратить устранение общих подвыражений, когда один и тот же вызов функции используется несколько раз в запросе.Any
Возвращаемое значение
Возвращает случайное число типа Float64, сгенерированное согласно указанному распределению Бернулли. UInt64
Примеры
Пример использования
randBinomial
Добавлена в версии v22.10
Возвращает случайное число типа Float64, выбранное из биномиального распределения.
Синтаксис
Аргументы
experiments— количество экспериментовUInt64probability— вероятность успеха в каждом эксперименте как значение между0и1Float64x— необязательный аргумент, который игнорируется. Его единственная цель — предотвратить устранение общих подвыражений, когда один и тот же вызов функции используется несколько раз в запросе.Any
Возвращаемое значение
Возвращает случайное число типа Float64, выбранное из указанного биномиального распределения. UInt64
Примеры
Пример использования
randCanonical
Появилась в версии: v22.11
Возвращает случайное число типа Float64 с равномерным распределением на отрезке от 0 (включительно) до 1 (не включительно).
Синтаксис
Аргументы
x— необязательный аргумент, игнорируется. Единственная его цель — предотвратить устранение общих подвыражений, когда один и тот же вызов функции используется несколько раз в запросе.Any
Возвращаемое значение
Возвращает случайное число с плавающей запятой типа Float64. Float64
Примеры
Пример использования
randChiSquared
Появилась в: v22.10
Возвращает случайное число типа Float64, сгенерированное по распределению хи-квадрат.
Синтаксис
Аргументы
degree_of_freedom— Число степеней свободы.Float64x— Необязательный аргумент, который игнорируется. Единственная его цель — предотвратить устранение общих подвыражений, когда один и тот же вызов функции используется несколько раз в запросе.Any
Возвращаемое значение
Возвращает случайное число типа Float64, выбранное из указанного распределения хи-квадрат. Float64
Примеры
Пример использования
randConstant
Добавлена в: v1.1
Генерирует одно случайное значение, которое остаётся неизменным для всех строк в рамках текущего выполнения запроса.
Эта функция:
- Возвращает одно и то же случайное значение для каждой строки в пределах одного запроса
- Выдаёт разные значения при отдельных выполненияx запроса
Полезна для применения единых случайных seed-значений или идентификаторов ко всем строкам в наборе данных.
Синтаксис
Аргументы
x— необязательный аргумент, значение которого игнорируется. Единственная его цель — предотвратить устранение общих подвыражений, когда один и тот же вызов функции повторно используется в запросе.Any
Возвращаемое значение
Возвращает столбец типа UInt32, содержащий одно и то же случайное значение в каждой строке. UInt32
Примеры
Базовое использование
Использование с параметром
randExponential
Появилась в версии v22.10
Возвращает случайное число типа Float64, полученное из экспоненциального распределения.
Синтаксис
Аргументы
lambda— параметр интенсивности (значение λ) распределенияFloat64x— необязательный и игнорируемый аргумент. Его единственная цель — предотвратить устранение общих подвыражений, когда один и тот же вызов функции используется несколько раз в запросе.Any
Возвращаемое значение
Возвращает случайное число типа Float64, сгенерированное по указанному экспоненциальному распределению. Float64
Примеры
Пример использования
randFisherF
Появилась в версии: v22.10
Возвращает случайное число типа Float64, сгенерированное по F-распределению.
Синтаксис
Аргументы
d1— число степеней свободы d1 вX = (S1 / d1) / (S2 / d2).Float64d2— число степеней свободы d2 вX = (S1 / d1) / (S2 / d2).Float64x— необязательный аргумент, значение которого игнорируется. Единственное назначение аргумента — предотвратить устранение общих подвыражений, когда один и тот же вызов функции используется несколько раз в запросе.Any
Возвращаемое значение
Возвращает случайное число типа Float64, выбранное из указанного F-распределения. Float64
Примеры
Пример использования
randLogNormal
Добавлена в версии: v22.10
Возвращает случайное число с плавающей запятой типа Float64, полученное из логнормального распределения.
Синтаксис
Аргументы
mean— Среднее значение распределения.Float64stddev— Стандартное отклонение распределения.Float64x— Необязательный аргумент, значение которого игнорируется. Единственная цель аргумента — предотвратить устранение общих подвыражений, когда один и тот же вызов функции используется несколько раз в запросе.Any
Возвращаемое значение
Возвращает случайное число с плавающей запятой типа Float64, выбранное из указанного логнормального распределения. Float64
Примеры
Пример использования
randNegativeBinomial
Добавлена в: v22.10
Возвращает случайное число типа Float64, сгенерированное из отрицательного биномиального распределения.
Синтаксис
Аргументы
experiments— Количество экспериментов.UInt64probability— Вероятность неудачи в каждом эксперименте в виде значения от0до1.Float64x— Необязательный аргумент, который игнорируется. Единственная цель аргумента — предотвратить устранение общих подвыражений, когда один и тот же вызов функции используется несколько раз в запросе.Any
Возвращаемое значение
Возвращает случайное число типа Float64, сгенерированное по указанному отрицательному биномиальному распределению. UInt64
Примеры
Пример использования
randNormal
Добавлено в: v22.10
Возвращает случайное число типа Float64, сгенерированное по нормальному распределению.
Синтаксис
Аргументы
mean— Среднее значение распределенияFloat64stddev— Стандартное отклонение распределенияFloat64x— Необязательный аргумент, игнорируется. Единственная цель этого аргумента — предотвратить устранение общих подвыражений, когда один и тот же вызов функции используется несколько раз в запросе.Any
Возвращаемое значение
Возвращает случайное число типа Float64, сгенерированное из заданного нормального распределения. Float64
Примеры
Пример использования
randPoisson
Впервые появился в: v22.10
Возвращает случайное число типа Float64, сгенерированное по распределению Пуассона.
Синтаксис
Аргументы
n— Среднее число событий (среднее количество наступлений события).UInt64x— Необязательный аргумент, значение которого игнорируется. Единственная его цель — предотвратить устранение общих подвыражений, когда один и тот же вызов функции используется несколько раз в запросе.Any
Возвращаемое значение
Возвращает случайное число типа Float64, сгенерированное из указанного распределения Пуассона. UInt64
Примеры
Пример использования
randStudentT
Появилась в версии: v22.10
Возвращает случайное число типа Float64, сгенерированное по t-распределению Стьюдента.
Синтаксис
Аргументы
degree_of_freedom— число степеней свободы.Float64x— необязательный аргумент, который игнорируется. Единственная цель аргумента — предотвратить устранение общих подвыражений, когда один и тот же вызов функции используется несколько раз в запросе.Any
Возвращаемое значение
Возвращает случайное число типа Float64, выбранное из указанного распределения Стьюдента. Float64
Примеры
Пример использования
randUniform
Впервые появилась в версии v22.10
Возвращает случайное число типа Float64, равномерно распределённое на интервале .
Синтаксис
Аргументы
min— Левая граница диапазона (включительно).Float64max— Правая граница диапазона (включительно).Float64x— Необязательный и игнорируемый аргумент. Единственная цель аргумента — предотвратить устранение общих подвыражений, когда один и тот же вызов функции используется несколько раз в запросе.Any
Возвращаемое значение
Возвращает случайное число, равномерно распределённое по интервалу между min и max. Float64
Примеры
Пример использования
randomFixedString
Появилась в версии v20.5
Генерирует случайную строку фиксированной длины с указанным количеством символов. Возвращаемые символы не обязательно являются символами ASCII, то есть они могут быть непечатаемыми.
Синтаксис
Аргументы
length— длина строки в байтах.UInt*
Возвращаемое значение
Возвращает строку, заполненную случайными байтами. FixedString
Примеры
Пример использования
randomPrintableASCII
Введена в версии: v20.1
Генерирует случайную строку ASCII с указанным количеством символов.
Если передать length < 0, поведение функции не определено.
Синтаксис
Аргументы
length— длина строки в байтах.(U)Int*x— необязательный аргумент, который игнорируется. Единственное назначение аргумента — предотвратить устранение общих подвыражений, когда один и тот же вызов функции используется несколько раз в запросе.Any
Возвращаемое значение
Возвращает строку со случайным набором печатных ASCII-символов. String
Примеры
Пример использования
randomString
Введена в версии: v20.5
Генерирует случайную строку с указанным количеством символов. Возвращаемые символы не обязательно относятся к ASCII, то есть они могут быть непечатаемыми.
Синтаксис
Аргументы
length— длина строки в байтах.(U)Int*x— необязательный аргумент, его значение игнорируется. Единственная цель аргумента — предотвратить устранение общих подвыражений, когда один и тот же вызов функции многократно используется в запросе.Any
Возвращаемое значение
Возвращает строку, заполненную случайными байтами. String
Примеры
Пример использования
randomStringUTF8
Добавлена в: v20.5
Генерирует случайную строку в кодировке UTF-8 с указанным числом кодовых точек. Кодовые точки из неназначенных плоскостей (плоскости с 4 по 13) не возвращаются. По‑прежнему возможно, что клиент, взаимодействующий с сервером ClickHouse, не сможет корректно отобразить полученную строку UTF-8.
Синтаксис
Аргументы
length— длина строки в кодовых точках.(U)Int*
Возвращаемое значение
Возвращает строку, заполненную случайными кодовыми точками UTF-8. String
Примеры
Пример использования