我们有一系列包含重复记录的模式的表,如下所示:
[{
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可能会更好,但是所有这些字段都包含我们想要测试的大多数不同的过滤器,并且我们还有许多其他非重复字段,如果被展平则难以管理。
事实证明,问题是从多个表中选择重复记录字段(而不是在创建视图中)。有没有一种简单的方法来解决这个问题?
由于
答案 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])