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