在配置单元中使用分隔符连接多行

r8uurelv  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(439)

我需要以“~”作为分隔符按行合并字符串值。我有以下数据:

我需要以“~”作为分隔符,按“row\u id”的升序为每个“id”连接“comment”列。
预期产量如下:
GROUP_CONCAT 不是选项,因为在我的配置单元版本中无法识别它。我可以用 collect_set 或者 collect_list ,但无法在两者之间插入分隔符。
有解决办法吗?

svgewumm

svgewumm1#

collect\u list返回数组,而不是字符串。
可以使用concat\u ws将数组转换为分隔字符串。
这将起作用,没有具体的评论顺序。

select      id
           ,concat_ws('~',collect_list(comment)) as comments

from        mytable 

group by    id
;
+----+-------------+
| id |  comments   |
+----+-------------+
|  1 | ABC~PRQ~XYZ |
|  2 | LMN~OPQ     |
+----+-------------+

相关问题