I was trying to generate random string in BigQuery when I encountered this answer.
SELECT
word
FROM
`publicdata.samples.shakespeare`
WHERE
RAND() < 10/(
SELECT
COUNT(*)
FROM
`publicdata.samples.shakespeare`)
It worked but I need to create a function out of that answer. This is my attempt to convert it but no luck.
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();
I got this error
Table not found: `publicdata.samples.shakespeare`;
failed to parse CREATE [TEMP] FUNCTION statement at [25:9]