hive多行合并成一行

在 Hive 中,您可以使用 GROUP BY 和 CONCAT_WS 函数来将多行合并成一行。

例如,假设您有一个名为 "my_table" 的表,其中有以下数据:

id | name
---|-----
1  | Alice
1  | Bob
1  | Charlie
2  | Dave
2  | Eve

您可以使用以下查询来将每个 id 的 name 值合并成一行:

SELECT id, CONCAT_WS(',', COLLECT_LIST(name)) AS names
FROM my_table
GROUP BY id;

上面的查询将输出以下结果:

id | names
---|---------
1  | Alice,Bob,Charlie
2  | Dave,Eve

其中,COLLECT_LIST 函数会将每个 id 对应的 name 值收集到一个列表中,然后 CONCAT_WS 函数会将这个列表中的值用逗号分隔符连接起来。

希望这个回答能够帮助您解决问题。如果您还有任何其他问题,请随时提问。

  •