BigQuery更改了行为 - 保存视图时默认情况下将展平结果设置为false?

时间:2017-09-08 10:07:34

标签: google-bigquery

查询示例1:

SELECT
  tb_1.a as a_col_1, 
  tb_2.a as a_col_2
FROM      (SELECT 'a' AS a) tb_1
LEFT JOIN (SELECT 'b' AS a) tb_2
ON  tb_1.a = tb_2.a

尝试1)将此查询保存为视图或2)插入表格时使用'展平结果' 未选中,我收到错误:

Conflicting names in JOIN output: field a is present in both side of the JOIN.

但是当我使用' Flatten results'选项勾选。

我知道如果我在查询示例2中重命名两个子查询中的别名,查询将会起作用:

SELECT
  tb_1.aa as a_col_1, 
  tb_2.ab as a_col_2
FROM (SELECT 'a' AS aa) tb_1
LEFT JOIN (SELECT 'b' AS ab) tb_2
ON tb_1.aa = tb_2.ab

但这不是重点。

问题是将示例1查询保存为视图用于工作

我有一个很大的问题。我有几十个报告,包含一个带有多个连接的非常长的SQL,它使用了示例1中所示的别名方式。 我经常需要将这些SQL报告作为视图发布到新数据集,并且我不能在不更改SQL的情况下再执行此操作。

我的印象是,在保存视图时,BQ现在会对请求进行处理,就好像会使结果变平一样。设置为false。我的问题是:使用Google Rest API创建视图,我可以传递一个参数,以便视图创建会以某种方式将此参数设置为true吗?如果是这样,有人可以分享HTTV的帖子吗? Tables API BQ documentation似乎没有提及有关在创建视图时展平结果的任何内容。

0 个答案:

没有答案