【问题标题】:Can you have an aggregate function within a UDF in BigQuery SQL?您可以在 BigQuery SQL 的 UDF 中使用聚合函数吗?
【发布时间】:2021-12-28 00:35:24
【问题描述】:

当我尝试使用具有聚合函数的 UDF 时,我收到以下错误:

Aggregate function APPROX_QUANTILES not allowed in templated SQL function call

这是一个示例函数:

CREATE OR REPLACE FUNCTION my_function(x ANY TYPE) AS (
APPROX_QUANTILES(x, 100)[OFFSET(25)]
);

有没有办法在 BigQuery 的 UDF 中包含聚合函数(在我的例子中是 APPROX_QUANTILES)?

【问题讨论】:

    标签: sql google-bigquery user-defined-functions


    【解决方案1】:

    改为下面试试

    CREATE OR REPLACE FUNCTION my_function(x ANY TYPE) AS ((
      SELECT APPROX_QUANTILES(y, 100)[OFFSET(25)]
      FROM UNNEST(x) y
    ));
    

    【讨论】:

    • 当我尝试得到这个错误时:Values referenced in UNNEST must be arrays. UNNEST contains expression of type INT64 Analysis of function
    • 显然,您应该将数组传递给该 proc。提供您的使用示例,我将在我的答案中添加正确的调用示例
    • 谢谢!!!使用ARRAY_AGG,它工作:)
    猜你喜欢
    • 2019-07-23
    • 2020-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多