我想要实现的是为流程选择一个控制组。为此,我使用random(),为了调试/一致性,我希望能够以可重复的方式设置随机数。意思是,我在分配用户123随机数.001后运行查询。在不同的时间我删除以前的数据,我调用相同的查询,并再次为用户123分配随机数.001。
我试过了:
SELECT setseed(0);
SELECT 1, random() from generate_series(1,10);
每次运行都会收到一个不同的随机数。
SELECT 1, setseed(0), random() from generate_series(1,10);
每行接收相同的随机数,这是无用的。
我确信这里有一些我不明白的东西。任何帮助表示赞赏。
答案 0 :(得分:3)
使用所需查询执行union all
setseed()
查询。必须匹配两个查询中的列类型。 setseed()
会返回void
。
select setseed(0), null
union all
select null, random()
from generate_series(1, 10)
offset 1
;
offset 1
子句从结果集中删除setseed() row