Google bigquery BigQuery:它支持UDAF吗?

Google bigquery BigQuery:它支持UDAF吗?,google-bigquery,user-defined-functions,Google Bigquery,User Defined Functions,我猜BigQuery不支持UDAF,因为我只能找到关于UDF的内容。BigQuery支持UDAF吗?如果没有,是否有任何方法可以对聚合结果运行UDF?可能通过使用ARRAY\u AGG?是的,您可以使用ARRAY\u AGG对UDAF进行建模。例如,您可以执行以下操作: CREATE TEMP FUNCTION AggX(arr ARRAY<INT64>) AS ( (SELECT SUM(x * x) FROM UNNEST(arr) AS x) ); SELECT id,

我猜BigQuery不支持UDAF,因为我只能找到关于UDF的内容。BigQuery支持UDAF吗?如果没有,是否有任何方法可以对聚合结果运行UDF?可能通过使用ARRAY\u AGG?

是的,您可以使用ARRAY\u 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\u AGGSTRUCT。。。来构建对它的输入