首页 > 解决方案 > 带循环的 BigQuery UDF

问题描述

我想要一个 BigQuery (SQL) 中的函数示例,以便查看创建此类函数所需的语法:在 BigQuery 中创建一个函数,使用 SQL(而不是 JavaScript),其中在内部创建一个数组和循环以进行迭代这个数组,将数组的值相加并返回结果和(int64)。

标签: google-bigquery

解决方案


以下是 BigQuery 标准 SQL

BigQuery (SQL) 中的函数示例,它“循环”通过数组的元素并产生其元素的总和

create temp function sum_array(a array<INT64>) as ((
  select sum(element) from unnest(a) element
));

以下是使用简化虚拟数据的此类功能的示例

#standardSQL
create temp function sum_array(a array<INT64>) as ((
  select sum(element) from unnest(a) element
));
with `project.dataset.table` as (
  select 1 id, [1, 2, 3, 4, 5,6 ] arr union all
  select 2, [1, 3, 5, 7, 9] union all
  select 3, [2, 4] 
)
select id, sum_array(arr) sum_elements_of_array 
from `project.dataset.table`
order by id

带输出

在此处输入图像描述


推荐阅读