我有以下架构:
[
{
'name': 'id',
'type': 'INTEGER'
}
{
'name': 'record',
'type': 'RECORD',
'fields': [
{
'name': 'repeated',
'type': 'STRING',
'mode': 'REPEATED'
}
]
}
]
以下数据:
+--------------------+
|id |record.repeated|
+--------------------+
|1 |'a' |
| |'b' |
| |'c' |
+--------------------+
|2 |'a' |
| |'c' |
+--------------------+
|3 |'d' |
+--------------------+
我需要创建一个返回此内容的查询:
+--------------------+
|id |record.repeated|
+--------------------+
|1 |'a,b,c' |
+--------------------+
|2 |'a,c' |
+--------------------+
|3 |'d' |
+--------------------+
换句话说,我需要查询,允许我使用分隔符(在本例中为逗号)连接嵌套字段的值。像MySQL的GROUP_CONCAT函数,但在BigQuery上。
相关提示:Concat all column values in sql
这可能吗?
感谢。
答案 0 :(得分:7)
这很简单
select group_concat(record.repeated) from table
来自publicdata的一个例子是
SELECT group_concat(payload.shas.encoded)
FROM [publicdata:samples.github_nested]
WHERE repository.url='https://github.com/dreamerslab/workspace'
答案 1 :(得分:0)
对于标准 sql:
select id, string_agg(record.field)
from your_table, unnest(record)
或
select id, string_agg(record.field)
from your_table left join unnest(record)