在bigquery UDF中使用SQL

我正在尝试通过创建一个函数来解决我在数据中遇到的问题,该函数从字符串数组中获取代码,并从其他表中获取代码描述,然后将结果重新合并为单个字符串

我想创建一个函数来概括解决我的问题,如果您有其他解决方案,我不希望使用temp函数:

CREATE TEMP FUNCTION
  TEST(ref_no INT64,string_array STRING,market_par STRING) AS ( (
    SELECT
      STRING_AGG(SUBSTR(descr,2,LENGTH(descr)-2),',')
    FROM (
      SELECT
        json_EXTRact(description,'$.EnglishDesc') descr
      FROM (
        SELECT
          CAST(n AS int64) n
        FROM (
          SELECT
            *
          FROM
            UNnesT(SPLIT(SUBSTR(string_array,LENGTH(string_array)-2))) AS n)) z
      JOIN
        `project.dataset.table` y
      ON
        (z.n = y.code
          AND y.typeid = ref_no
          AND y.market = market_par)) )) ;

所以我将字符串数组转换为嵌套列,然后在其上使用unnest,最后我将结果与字典表结合在一起 我收到以下错误:

CREATE TEMPORARY FUNCTION statements must be followed by an actual query.

我的问题是否可以解决并推广到其他类型的代码,或者我每次都必须使用UDF来对我的解决方案进行硬编码

sakura52 回答:在bigquery UDF中使用SQL

您无法对SQL UDF中的另一个表执行查询。因此,几周前,Google在Beta版中引入了Bigquery中的脚本和存储过程。

我认为您想要实现的是可以在stored procedure中完成,那么您可以call it with the desired parameters

本文链接:https://www.f2er.com/3096586.html

大家都在问