【发布时间】:2019-07-22 01:34:19
【问题描述】:
当我遇到answer 时,我正试图在 BigQuery 中生成随机字符串。
SELECT
word
FROM
`publicdata.samples.shakespeare`
WHERE
RAND() < 10/(
SELECT
COUNT(*)
FROM
`publicdata.samples.shakespeare`)
它有效,但我需要根据该答案创建一个函数。这是我尝试转换它但没有运气。
CREATE TEMP FUNCTION
random_word() AS ( (
SELECT
STRING_AGG(word, "_") AS aggd_word
FROM (
SELECT
LOWER(REPLACE(word, "'", "")) AS word
FROM
`publicdata.samples.shakespeare`
WHERE
RAND() < 10/(
SELECT
COUNT(*)
FROM
`publicdata.samples.shakespeare`)
LIMIT
3)) );
SELECT
random_word();
我收到了这个错误
Table not found: `publicdata.samples.shakespeare`;
failed to parse CREATE [TEMP] FUNCTION statement at [25:9]
【问题讨论】:
-
字符串中可以包含哪些字符?例如,任何 UTF-8 代码点,还是您专门针对
a-zA-Z0-9?字符串长度的上限和下限是多少? -
@ElliottBrossard
a-zA-Z0-9就足够了。字符串的长度不是我关心的。但不要太长,最多 64 个字符。基本上只是一个随机字符串(不是 UUID)生成器。 -
cloud.google.com/bigquery/docs/reference/standard-sql/… - 您不能引用 UDF 中的表
-
@Bobbylank 谢谢,需要更彻底地阅读文档
-
没问题,希望您能找到解决问题的其他方法
标签: google-bigquery