Bigquery 创建具有重复记录的视图
Big Query Create View with Repeated Record
我们有一系列包含重复记录的架构表,如下所示:
[{
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.
我知道使用展平可能会更好,但所有这些字段主要包含我们要测试的不同过滤器,而且我们还有许多其他非重复字段,如果展平将难以管理。
原来问题出在从多个表中选择重复的记录字段(不是在创建视图中)。有没有简单的方法来解决这个问题?
谢谢
如果你这样做 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])
我们有一系列包含重复记录的架构表,如下所示:
[{
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.
我知道使用展平可能会更好,但所有这些字段主要包含我们要测试的不同过滤器,而且我们还有许多其他非重复字段,如果展平将难以管理。
原来问题出在从多个表中选择重复的记录字段(不是在创建视图中)。有没有简单的方法来解决这个问题?
谢谢
如果你这样做 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])