在Redshift中有明显的随机性

时间:2018-01-30 18:53:16

标签: sql amazon-redshift

从文档中我看到cast(random() * 1000 as int)给出了1到1000之间的随机整数。但是,我得到了很多重复项 - 是否有办法获得一个独特的随机数?为了澄清,总记录<1000

2 个答案:

答案 0 :(得分:3)

您可以使用row_number()分配随机数:

select row_number() over (order by random())

这似乎足以满足大多数目的。您可以将这些缩放为1000:

select trunc(1000 * (row_number() over (order by random()) * 1.0 / count(*) over () ))

答案 1 :(得分:0)

复制它的方法可能是在子查询中选择比你需要的更多的数字(x2或x3),然后从该子查询中选择不同的