Google bigquery 在查询中添加ORDER BY语句而不展平结果会导致;无法查询重复字段的叉积"; 查询: “从[表]中选择*按id顺序描述限制10” AllowLargeResults=true 结果=错误 表架构: [ { “名称”:“id”, “类型”:“字符串”, “模式”:“可为空” }, { “名称”:“重复的\u字段\u 1”, “类型”:“字符串”, “模式”:“重复” }, { “名称”:“重复的\u字段\u 2”, “类型”:“字符串”, “模式”:“重复” } ]

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]

查询“SELECT*FROM[table]LIMIT 10”工作正常。当我添加ORDERBY子句时,即使ORDERBY没有提到任何重复字段,我也会遇到这个错误


有什么方法可以实现这一点吗?

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