首页 > 解决方案 > BigQuery 脚本:根据表列中包含的每一行运行 SQL 查询

问题描述

我的原始表包括url_idSQL [标准 sql,字符串]

在此处输入图像描述

我想运行字符串列“SQL”中的每个 SQL 语句,并将结果与​​对应的 url_id 连接起来

预期结果

在此处输入图像描述

更新

为了便于重现,我从公共 BQ 导入了一个类似的模式:

bigquery-public-data.covid19_italy.data_by_province

在此处输入图像描述

如果我跑

select string_agg(
    format('select %i as url_id, (%s) as simpleSKU', url_id, sql), 
    ' union all '   )

FROM `xxx.staging.test_query

它返回 在此处输入图像描述

标签: google-bigquerybigquery-udf

解决方案


考虑下面

execute immediate (
  select 'select url_id, region_name from (' || string_agg(
    format('select %i as url_id, array(%s) as region_names', url_id, sql), 
    ' union all '
  ) || '), unnest(region_names) as region_name'
  from your_table
);   

如果应用于您问题中的样本数据 - 输出它

在此处输入图像描述


推荐阅读