大查询创建具有重复记录的视图

时间:2015-11-12 20:01:25

标签: google-bigquery google-cloud-platform

我们有一系列包含重复记录的模式的表,如下所示:

[{
    name: "field1",
    type: "RECORD",
    mode: "REPEATED",
    fields: [{type: "STRING", name: "subfield1"}, {type: "INTEGER", name: "subfield2"}]
}]

当我们创建包含重复记录字段的视图时,我们总是会收到错误:

Error in query string: Field field1 from table xxxxx is not a leaf field.

我知道使用flatten可能会更好,但是所有这些字段都包含我们想要测试的大多数不同的过滤器,并且我们还有许多其他非重复字段,如果被展平则难以管理。

事实证明,问题是从多个表中选择重复记录字段(而不是在创建视图中)。有没有一种简单的方法来解决这个问题?

由于

1 个答案:

答案 0 :(得分:1)

如果你SELECT field.* from t1, t2,你会收到错误* *不能用于引用联合中的字段(如上所述)。

您可以通过将联合包装在内部SELECT语句中来解决此问题,如SELECT field.* from (SELECT * from t1, t2)中所述。

举一个具体的例子,这有效:

SELECT payload.pages.* 
FROM (
    SELECT *  
    FROM [publicdata:samples.github_nested],   
         [publicdata:samples.github_nested])