我想BigQuery不支持UDAF,因为我所能找到的只是有关UDF的信息。 BigQuery是否支持UDAF?如果不是,是否有某种方法可以对汇总结果运行UDF?也许通过使用ARRAY_AGG?
答案 0 :(得分:1)
是的,您可以使用ARRAY_AGG为UDAF建模。例如,您可以执行以下操作:
CREATE TEMP FUNCTION AggX(arr ARRAY<INT64>) AS (
(SELECT SUM(x * x) FROM UNNEST(arr) AS x)
);
SELECT id, AggX(ARRAY_AGG(x)) AS result
FROM dataset.table
GROUP BY id
根据要实现的逻辑类型,甚至可以让函数将ARRAY<STRUCT<...>>
与要对其进行操作的任何列一起使用,并使用ARRAY_AGG(STRUCT(...))
来构建输入它。