【发布时间】:2021-01-02 02:12:16
【问题描述】:
我有下表:
row | cust_id | name
1 | 34 | word1 word2 someworkd
| | something word1
| | blabla
2 | 35 | word1 word2 word3
| | word4 word5
选择 * 结果 JSON
[
{
"cust_id": "34",
"name": [
"word1 word2 someworkd",
"something word1",
"blabla"
]
},
{
"cust_id": "35",
"name": [
"word1 word2 word3",
"word4 word5",
"word1word5"
]
}
]
模式 JSON:
[
{
"mode": "NULLABLE",
"name": "cust_id",
"type": "STRING"
},
{
"mode": "REPEATED",
"name": "name",
"type": "STRING"
}
]
我想通过 cust_id 和重复字段对其值进行过滤,因此使用如下查询:
SELECT * FROM `mytable` WHERE cust_id='34' and name like'%word1%'
查询的预期输出:
row | cust_id | name
1 | 34 | word1 word2 someworkd
| | something word1
JSON 格式查询的预期输出:
{
"cust_id": "34",
"name": [
"word1 word2 someworkd",
"something word1"
]
}
]
受这个问题的启发BigQuery : filter repeated fields with standard SQL 我试试这个查询:
SELECT cust_id, name FROM `mytable`, UNNEST(name) AS name WITH OFFSET o
WHERE name like '%word1%' and cust_id='34'
哪个输出这个:
row | cust_id | name
1 | 34 | word1 word2 someworkd
| 34 | something word1
输出 JSON:
[
{
"cust_id": "34",
"name": "word1 word2 someworkd"
},
{
"cust_id": "34",
"name": "something word1"
}
]
输出结果与我想要的不一样,请问我该如何实现?
【问题讨论】:
标签: google-bigquery