假设我有以下架构:

[
   {
        '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

那可能吗?

谢谢。

最佳答案

这很简单

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'

关于google-bigquery - 在 BigQuery 上连接嵌套字段的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29486388/

10-13 07:00