【问题标题】:How to flatten with a table wildcard in BigQuery?如何在 BigQuery 中使用表通配符进行展平?
【发布时间】:2015-07-23 18:25:47
【问题描述】:

我们最近切换到了标准设置,其中的表格按月份 (foo_2015_05) 标记,并采用包含重复字段的通用格式。最初,当我基于一个大表创建视图时,它迫使我在重复字段上展平表。

当尝试更新我的视图以考虑每月表时,我似乎无法同时拥有表通配符和展平。

SELECT blah
FROM FLATTEN(TABLE_QUERY(dataset, "tableid CONTAINS 'foo_'"), repeated_field)

给我以下错误: 无法解析表名:缺少数据集名称

我错过了什么吗?或者有解决办法吗?

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    我认为问题在于 FLATTEN 不能使用表联合,如果 TABLE_QUERY 评估为多个表,则 TABLE_QUERY 最终会被重写为。一种解决方法是将TABLE_QUERY 包装在子选择中,使FLATTEN 在单个源(即子选择)上运行。

    SELECT blah
    FROM FLATTEN(
      (SELECT * FROM TABLE_QUERY(dataset, "tableid CONTAINS 'foo_'")), 
      repeated_field)
    

    【讨论】:

    • 我正要评论,作为一种可能的解决方法,你,先生,打败了我!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-30
    • 2014-05-03
    • 2022-01-23
    相关资源
    最近更新 更多