[英]Combine multiple rows into one space separated string
所以我有5行
userid, col
--------------
1, a
1, b
2, c
2, d
3, e
我将如何查询,使其看起来像这样
userid, combined
1, a b
2, c d
3, e
在蜂巢中,您可以使用
SELECT userid, collect_set(combined) FROM tabel GROUP BY user_id;
collect_set删除重复项。 如果您需要保留它们,可以查看以下信息:
使用GROUP_CONCAT聚合函数 :
SELECT yt.userid,
GROUP_CONCAT(yt.col SEPARATOR ' ') AS combined
FROM YOUR_TABLE yt
GROUP BY yt.userid
默认的分隔符是逗号(“,”),因此您需要指定单个空格的SEPARATOR以获得所需的输出。
如果要确保GROUP_CONCAT中值的顺序,请使用:
SELECT yt.userid,
GROUP_CONCAT(yt.col ORDER BY yt.col SEPARATOR ' ') AS combined
FROM YOUR_TABLE yt
GROUP BY yt.userid
SELECT
userid,
concat_ws(" ", collect_set(col)) AS combined
FROM table
GROUP BY userid
MySQL
: select col1, group_concat(col2) from table1 group by col1
MySQL
: select col1, group_concat(distinct col2) from table1 group by col1
Hive
项重复的Hive
: select col1, collect_list(col2) from table1 group by col1
Hive
: select col1, collect_set(col2) from table1 group by col1
我很确定您不能使用Hive QL做到这一点。 但是,如果您编写自己的Map / Reduce脚本,则应该可以这样做-请参阅本教程以开始使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.