Google bigquery 在查询中添加ORDER BY语句而不展平结果会导致;无法查询重复字段的叉积"; 查询: “从[表]中选择*按id顺序描述限制10” AllowLargeResults=true 结果=错误 表架构: [ { “名称”:“id”, “类型”:“字符串”, “模式”:“可为空” }, { “名称”:“重复的\u字段\u 1”, “类型”:“字符串”, “模式”:“重复” }, { “名称”:“重复的\u字段\u 2”, “类型”:“字符串”, “模式”:“重复” } ]
查询“SELECT*FROM[table]LIMIT 10”工作正常。当我添加ORDERBY子句时,即使ORDERBY没有提到任何重复字段,我也会遇到这个错误Google bigquery 在查询中添加ORDER BY语句而不展平结果会导致;无法查询重复字段的叉积"; 查询: “从[表]中选择*按id顺序描述限制10” AllowLargeResults=true 结果=错误 表架构: [ { “名称”:“id”, “类型”:“字符串”, “模式”:“可为空” }, { “名称”:“重复的\u字段\u 1”, “类型”:“字符串”, “模式”:“重复” }, { “名称”:“重复的\u字段\u 2”, “类型”:“字符串”, “模式”:“重复” } ],google-bigquery,Google Bigquery,查询“SELECT*FROM[table]LIMIT 10”工作正常。当我添加ORDERBY子句时,即使ORDERBY没有提到任何重复字段,我也会遇到这个错误 有什么方法可以实现这一点吗?ORDER BY子句会导致BigQuery自动展平查询的输出,从而导致您的查询尝试生成重复的\u字段\u 1和重复的\u字段\u 2的叉积 如果您不关心保留字段的重复性,那么可以显式地展平这两个字段,这将导致您的查询生成原始查询所抱怨的叉积 Query: "SELECT * FROM [table]
有什么方法可以实现这一点吗?ORDER BY子句会导致BigQuery自动展平查询的输出,从而导致您的查询尝试生成重复的\u字段\u 1和重复的\u字段\u 2的叉积 如果您不关心保留字段的重复性,那么可以显式地
展平这两个字段,这将导致您的查询生成原始查询所抱怨的叉积
Query:
"SELECT * FROM [table] ORDER BY id DESC LIMIT 10"
AllowLargeResults = true
FlattenResults = false
table schema:
[
{
"name": "id",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "repeated_field_1",
"type": "STRING",
"mode": "REPEATED"
},
{
"name": "repeated_field_2",
"type": "STRING",
"mode": "REPEATED"
}
]
除此之外,我没有一个很好的解决方法来查询orderby
和输出重复字段
另见:
SELECT *
FROM FLATTEN(FLATTEN([table], repeated_field_1), repeated_field_2)
ORDER BY id DESC
LIMIT 10