BigQuery 将列作为逗号分隔值

Posted

技术标签:

【中文标题】BigQuery 将列作为逗号分隔值【英文标题】:BigQuery get column as comma seperated values 【发布时间】:2018-06-07 14:22:10 【问题描述】:

是否有与 SQLServer STUFF 函数等效的 Bigquery 以将字段作为逗号分隔值而不是多行来获取?

例如

**表格1** 身份证名称 1约翰 2约翰 3 汤姆 1 哈利 4 哈利 5 哈利 **表 2** 标识组 1组1 2组2 3组3 4组4 5组5

我希望结果是

名称组 约翰 group1,group2 汤姆组3 哈利 group1,group4,group5

提前感谢您的帮助

【问题讨论】:

你能修正Table 1Table 2的格式吗?目前尚不清楚列名与行的内容是什么。 修复了表格格式。对此感到抱歉。 【参考方案1】:

使用标准 SQL:

#standardSQL
SELECT name, STRING_AGG(DISTINCT `group` ORDER BY `group`) 
FROM (table or sub-select doing join)
GROUP BY name

【讨论】:

group 是保留关键字,作为提示,因此可能需要在查询中使用反引号转义该列名)

以上是关于BigQuery 将列作为逗号分隔值的主要内容,如果未能解决你的问题,请参考以下文章

MSSQL:如何创建将列显示为逗号分隔值的视图 [重复]

Oracle将列与逗号分隔值组合在一起

有没有办法将列的值聚合和/或连接为 Group By 查询中的逗号分隔项?

将列中逗号分隔的字符串拆分为单独的行

BigQuery 逗号分隔的字符串评估

将列值转换为行值