BigQuery RAND() 不接受种子值
BigQuery RAND() not accepting seed value
我正在尝试使用 RAND() 函数并设置种子以在 https://cloud.google.com/dataprep/docs/html/RAND-Function_57344757#int_value
之后的输出中生成一组一致的 10 个随机值
通过此查询我收到错误:No matching signature for function RAND for argument types: INT64.
:
rand_val as (
select value
from test
where RAND(3) < 10/ (select count(value) from test))
select * from rand_val
我做错了什么?
在 BigQuery 中 rand()
不接受种子参数。检查 documentation.
您可以使用伪随机数生成器。例如,如果您的 table 有一个主键,您可以使用 farm_fingerprint()
:
的键获得 10 个“随机”样本
with t as (
select t.*,
row_number() over (order by farm_fingerprint(concat(pk, '3')) ) as seqnum
from t
)
select t.*
from t
where seqnum <= 10;
concat()
的第二个参数是种子值。
我正在尝试使用 RAND() 函数并设置种子以在 https://cloud.google.com/dataprep/docs/html/RAND-Function_57344757#int_value
之后的输出中生成一组一致的 10 个随机值通过此查询我收到错误:No matching signature for function RAND for argument types: INT64.
:
rand_val as (
select value
from test
where RAND(3) < 10/ (select count(value) from test))
select * from rand_val
我做错了什么?
在 BigQuery 中 rand()
不接受种子参数。检查 documentation.
您可以使用伪随机数生成器。例如,如果您的 table 有一个主键,您可以使用 farm_fingerprint()
:
with t as (
select t.*,
row_number() over (order by farm_fingerprint(concat(pk, '3')) ) as seqnum
from t
)
select t.*
from t
where seqnum <= 10;
concat()
的第二个参数是种子值。