【问题标题】:BigQuery scripting: running a SQL query based on each row included in a table columnBigQuery 脚本:根据表列中包含的每一行运行 SQL 查询
【发布时间】:2021-01-26 11:33:08
【问题描述】:

我的原始表包括 url_idSQL [标准 sql, string]

我想运行字符串列“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-bigquery bigquery-udf


    【解决方案1】:

    考虑下面

    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
    );   
    

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

    【讨论】:

    • 嗨,它返回给我查询错误:标量子查询在 [1:1] 产生了多个元素我还更新了问题以使其更易于调试
    • 我想我测试了这个并且它按预期工作。不久将再检查一次。敬请期待:o)
    • 在我的回答中查看更新。看起来就像我最初测试时一样 - 我使用了过度简化的虚拟数据,每个 url_id 只返回一行,因此现实生活数据的错误 - 现在已修复
    • 谢谢,您知道是否可以创建表或以某种方式保存立即执行?
    猜你喜欢
    • 2018-02-16
    • 2014-12-28
    • 2018-03-09
    • 2021-11-21
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 2016-04-01
    • 1970-01-01
    相关资源
    最近更新 更多