select rand()


### ClickHouse `rand` 函数详解 #### 使用概述 `rand` 是 ClickHouse 中的一个内置函数,用于生成伪随机整数。每次调用此函数都会返回一个新的随机值。 #### 基本语法 ```sql rand([seed]) ``` - 参数 `seed`: 可选参数,指定种子值以初始化随机序列。如果不提供,则默认使用当前时间作为种子[^1]。 #### 返回类型 该函数返回一个 UInt64 类型的数据,即无符号的 64 位整数。 #### 实际应用案例 ##### 单独使用 `rand()` 当不需要特定范围内的随机数时,可以直接调用 `rand()` 来获取单个随机整数值: ```sql SELECT rand(); ``` 这会返回类似于下面的结果: | rand() | |-------------| | 9223372036854775807 | ##### 设置种子值 为了能够重复相同的随机序列,在测试环境中可以设置固定的种子值: ```sql SELECT rand(1); ``` 上述命令总是会产生相同的一系列随机数字串。 ##### 结合其他表达式一起工作 如果希望获得一定范围内 (比如 0 到 100) 的随机浮点数,可以通过除法运算实现这一点: ```sql SELECT round(rand()/toUInt64(max)/max*100, 2) AS random_number FROM system.numbers LIMIT 5; ``` 这里假设 `max` 表示最大可能产生的随机数;实际执行前需替换为具体的最大值或计算得出的实际最大值。 ##### 随机抽样数据集 对于大数据表而言,有时只需要抽取部分样本进行分析。此时可以用到如下技巧: ```sql SELECT * FROM large_table SAMPLE BY rand() WHERE rand()<0.01; -- 抽取大约百分之一的数据行 ``` 这条 SQL 将从名为 `large_table` 的表格里按比例选取记录,使得最终结果集中只含有原表约 1% 的条目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值