BigQuery:它支持UDAF吗?

时间:2018-08-17 08:00:46

标签: google-bigquery user-defined-functions

我想BigQuery不支持UDAF,因为我所能找到的只是有关UDF的信息。 BigQuery是否支持UDAF?如果不是,是否有某种方法可以对汇总结果运行UDF?也许通过使用ARRAY_AGG?

1 个答案:

答案 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(...))来构建输入它。