有没有办法通过对它们进行分组来组合/连接一列中的字段.例如:
col1 col2
1 aa
1 bb
1 cc
2 dd
2 ee
Run Code Online (Sandbox Code Playgroud)
我想查询类似的东西:
select col1, concat(col2) from tableName group by col1;
Run Code Online (Sandbox Code Playgroud)
输出应该是:
1 aa,bb,cc
2 dd,ee
Run Code Online (Sandbox Code Playgroud)
蜂巢中是否有任何功能可以做到这一点?
小智 7
你可以使用concat_ws()和collect_list()来实现这个目标....
就像是
select id , concat_ws(",", collect_list(val)) from test group by id;
Run Code Online (Sandbox Code Playgroud)
","是上述查询中的分隔符.
假设您有一个表格test如下:
select id, val from test order by id, val;
2 aa
2 bb
1 bb
1 aa
Run Code Online (Sandbox Code Playgroud)
你可以使用这个HIVE功能collect_set:
select id, collect_set(val) from test group by id;
1 ["aa","bb"]
2 ["bb","aa"]
Run Code Online (Sandbox Code Playgroud)
但请注意,collect_set返回一组具有重复元素的对象.
您可以在Language Manual Wiki上找到更多详细信息.
| 归档时间: |
|
| 查看次数: |
6540 次 |
| 最近记录: |