我之前使用过LegacySQLrand()
函数(在此处找到(,该函数将整数作为随机数生成过程的参数。
当我开始在StandardSQL中使用相同的rand()
函数(在此处找到(时,它不允许我提供种子。所以我的问题是,如果我想在生成数字时进行一些种子设定,有没有办法在BigQuery中的StandardSQL中进行?
这一点很重要,因为在科学研究中,有时我们需要处理随机数,但结果也需要可重复。
正如上面的答案所说,没有,但您可能可以使用哈希函数执行类似的操作,如sha256、sha1或md5。
我使用它将我的输出排序为每次都相同的随机顺序。
遗憾的是,在标准SQL语言中,无法为RAND()
函数提供种子。在这个公共问题跟踪器中,您可以看到整数类型在RAND()
函数中创建了一个有问题的场景。这些问题在标准SQL中得到了纠正,因此修改了一些内置函数。