我正在尝试创建一个 UDF,它将为每个作为参数传递给 UDF 的表找到名为“DatePartition”的字段的最大值。我创建的 UDF 如下所示:
CREATE TEMP FUNCTION maxDatePartition(x STRING) AS ((
SELECT MAX(DatePartition) FROM x WHERE DatePartition >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(),INTERVAL 7 DAY)
));
但我收到以下错误:“表名“x”缺少数据集,而请求中未设置默认数据集。”
表名将以以下格式传递给 UDF:
my-project.my-dataset.my-table
编辑:添加更多上下文:我有多个表,每天早上用昨天的数据更新。有时表格的更新时间比预期的要晚,所以我正在创建一个视图,允许用户快速查看每个表格中的最新数据。为此,我需要在一个语句中计算所有这些表的 MAX(DatePartition)。表列表将存储在另一个表中,但它会不时更改,因此我无法对其进行硬编码。