我需要将'〜'作为分隔符以行方式连接字符串值。 我有以下数据:
我需要以“row_id”的升序排列每个“id”的“Comment”列,并以“〜”作为分隔符。
预期产出如下:
GROUP_CONCAT不是一个选项,因为它在我的Hive版本中无法识别。 我可以使用collect_set或collect_list,但我不能在它们之间插入分隔符。
有什么工作吗?
答案 0 :(得分:13)
collect_list 返回数组,而非字符串。
可以使用 concat_ws 将数组转换为带分隔的字符串。
这将有效,没有具体的评论顺序。
select id
,concat_ws('~',collect_list(comment)) as comments
from mytable
group by id
;
+----+-------------+
| id | comments |
+----+-------------+
| 1 | ABC~PRQ~XYZ |
| 2 | LMN~OPQ |
+----+-------------+