【发布时间】:2017-08-04 15:59:25
【问题描述】:
也许我没有得到明显的信息,但我没有得到正确的查询。
每个数据行有多个键值对(重复数据),例如: {"row1":"data1","row2":"data2","row3":{"key1":"value1","key2":"value2"},"row4":{"key1A":"value1A ","key2A":"value2A"}}
我尝试获取在 row3 中设置了“key1”的所有记录的“value1”。与row4组合相同,所以如果设置了key2A,则给我对应的值。
我希望我正确地描述了我的问题。
编辑: 为了更好地理解,这是一个数据行的示例模式:
{
"exrow":"Example Data",
"date":"2017-08-07",
"hi": [
"cd":[
{"index":1,"value":"car"},
{"index":2,"value":"boat"},
{"index":3,"value":"green"},
{"index":4,"value":"blue"}
],
[...]
],
[...]
}
因此'hi' 和'cd' 是RECORD, REPEATED。
所以我试图得到的是以下结果行:
Example Data | 2017-08-07 | boat | blue
查询 - 只是为了理解 - 将是:
SELECT
exrow,
date,
(SELECT hi.cd.value WHERE hi.cd.index=2),
(SELECT hi.cd.value WHERE hi.cd.index=4)
FROM
table
所以我试图用相应的条件查询两个重复(嵌套?)的数据行。
我希望我现在解释得更好。
【问题讨论】:
-
不清楚 - 你的表的架构是什么?
-
我编辑了我的帖子并试图更好地解释它
-
您提供的架构很可能不正确,因为 BigQuery 中的 ARRAY 类型不支持
Nested Arrays- cloud.google.com/bigquery/docs/reference/standard-sql/…
标签: google-bigquery