在Google BigQuery SQL中如何拼接同一ID对应的多行字符串?
BigQuery多行字符串拼接解决方案
在Google BigQuery中可以直接使用STRING_AGG()聚合函数实现你需要的多行合并为单个拼接字符串的效果,用法如下:
基础用法(直接匹配你的需求)
SELECT ID, STRING_AGG(Location, ', ') AS Loc FROM 你的表名 GROUP BY ID
执行后即可得到你列出的目标结果格式:相同ID对应的所有Location会按指定的, 分隔符拼接为单个字符串。
常用进阶配置
- 如需对拼接的地点去重,可添加
DISTINCT关键字:STRING_AGG(DISTINCT Location, ', ') AS Loc - 如需按指定顺序拼接,可添加
ORDER BY子句:-- 按地点首字母升序拼接 STRING_AGG(Location, ', ' ORDER BY Location ASC) AS Loc - 如需处理NULL值,可先用
IFNULL替换空值后再拼接:-- 将空地点替换为「未知」后拼接 STRING_AGG(IFNULL(Location, '未知'), ', ') AS Loc
内容的提问来源于stack exchange,提问作者Emily Zhang
相关产品推荐
相关产品推荐

