生成随机数的函数
本节中的所有函数都接受零个或一个参数。如果提供了参数,其唯一用途是防止 公共子表达式消除,从而使同一行中对相同随机函数的两次不同执行返回不同的随机值。
相关内容
随机数由非加密算法生成。
以下文档是从 system.functions 系统表生成的。
fuzzBits
引入于:v20.5
以概率 p 翻转输入字符串 s 中的每个位。
语法
参数
s— 要进行位模糊处理的字符串或 FixedStringString或FixedStringp— 每个位的翻转概率,为一个介于0.0和1.0之间的数字Float*
返回值
返回与 s 具有相同类型的模糊字符串。 String 或 FixedString
示例
使用示例
rand
引入于:v1.1
返回一个均匀分布的随机 UInt32 数字。
使用从系统获取的初始状态的线性同余生成器,这意味着虽然它看起来是随机的,但它并非真正随机,如果已知初始状态,则可能是可预测的。对于真正需要随机性的场景,请考虑使用替代方法,例如系统级调用或与外部库集成。
语法
别名:rand32
参数
返回值
返回一个类型为 UInt32 的随机数。 UInt32
示例
使用示例
rand64
引入于:v1.1
返回一个均匀分布的随机 UInt64 数字。
使用从系统获取的初始状态的线性同余生成器,这意味着虽然它看起来是随机的,但它并非真正随机,如果已知初始状态,则可能是可预测的。对于真正需要随机性的场景,请考虑使用替代方法,例如系统级调用或与外部库集成。
语法
参数
返回值
返回一个均匀分布的随机 UInt64 数字。 UInt64
示例
使用示例
randBernoulli
引入于:v22.10
返回一个从 伯努利分布 中抽取的随机 Float64 数字。
语法
参数
返回值
返回从指定的伯努利分布中抽取的随机 Float64 数字。 UInt64
示例
使用示例
randBinomial
引入于:v22.10
返回一个从 二项分布 中抽取的随机 Float64 数字。
语法
参数
experiments— 实验次数UInt64probability— 每次实验中成功的概率,为一个介于0和1之间的值Float64x— 可选且被忽略。该参数的唯一目的是防止在查询中多次使用相同函数调用时进行 公共子表达式消除。Any
返回值
返回从指定的二项分布中抽取的随机 Float64 数字。 UInt64
示例
使用示例
randCanonical
引入于:v22.11
返回一个均匀分布的随机 Float64 数字,介于 0(包含)和 1(不包含)之间。
语法
参数
返回值
返回一个随机 Float64 数字。 Float64
示例
使用示例
randChiSquared
引入于:v22.10
返回一个从 卡方分布 中抽取的随机 Float64 数字。
语法
参数
返回值
返回从指定的卡方分布中抽取的随机 Float64 数字。 Float64
示例
使用示例
randConstant
引入于:v1.1
生成一个在当前查询执行过程中所有行保持不变的单个随机值。
此函数
- 在单个查询中为每一行返回相同随机值
- 在单独的查询执行中产生不同的值
它对于在数据集中应用一致的随机种子或标识符很有用
语法
参数
返回值
返回一个类型为 UInt32 的列,其中每行包含相同的随机值。 UInt32
示例
基本用法
带有参数的用法
randExponential
引入于:v22.10
返回一个从 指数分布 中抽取的随机 Float64 数字。
语法
参数
返回值
返回从指定的指数分布中抽取的随机 Float64 数字。 Float64
示例
使用示例
randFisherF
引入于:v22.10
返回一个从 F 分布 中抽取的随机 Float64 数字。
语法
参数
d1— 在X = (S1 / d1) / (S2 / d2)中 d1 自由度。Float64d2— 在X = (S1 / d1) / (S2 / d2)中 d2 自由度。Float64x— 可选且被忽略。该参数的唯一目的是防止在查询中多次使用相同函数调用时进行 公共子表达式消除。Any
返回值
返回从指定的 F 分布中抽取的随机 Float64 数字 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 数字。
语法
参数
返回值
返回从指定的正态分布中抽取的随机 Float64 数字。 Float64
示例
使用示例
randPoisson
引入于:v22.10
返回一个从 泊松分布 中抽取的随机 Float64 数字。
语法
参数
返回值
返回从指定的泊松分布中抽取的随机 Float64 数字。 UInt64
示例
使用示例
randStudentT
引入于:v22.10
返回一个从 学生 t 分布 中抽取的随机 Float64 数字。
语法
参数
返回值
返回从指定的学生 t 分布中抽取的随机 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,则函数的行为未定义。
语法
参数
返回值
返回一个包含随机 ASCII 可打印字符的字符串。 String
示例
使用示例
randomString
引入于:v20.5
生成一个具有指定字符数的随机字符串。返回的字符不一定是 ASCII 字符,即它们可能不可打印。
语法
参数
返回值
返回一个用随机字节填充的字符串。 String
示例
使用示例
randomStringUTF8
引入于:v20.5
生成一个指定数量代码点的随机 UTF-8 字符串。 不会返回来自未分配 平面(平面 4 到 13)的代码点。 仍然有可能与 ClickHouse 服务器交互的客户端无法正确显示生成的 UTF-8 字符串。
语法
参数
length— 字符串的长度,以代码点为单位。(U)Int*
返回值
返回一个填充了随机 UTF-8 代码点的字符串。 String
示例
使用示例