是否有任何方法通過對一列中的字段進行分組來組合/連接字段? 如:使用GROUP BY的Concat單列字段
col1 col2
1 aa
1 bb
1 cc
2 dd
2 ee
我想查詢是這樣的:
select col1, concat(col2) from tableName group by col1;
輸出應該是:
1 aa,bb,cc
2 dd,ee
是否有任何蜂巢函數來做到這一點?
是否有任何方法通過對一列中的字段進行分組來組合/連接字段? 如:使用GROUP BY的Concat單列字段
col1 col2
1 aa
1 bb
1 cc
2 dd
2 ee
我想查詢是這樣的:
select col1, concat(col2) from tableName group by col1;
輸出應該是:
1 aa,bb,cc
2 dd,ee
是否有任何蜂巢函數來做到這一點?
假設你有一個表test
如下:
select id, val from test order by id, val;
2 aa
2 bb
1 bb
1 aa
可以使用HIVE
功能collect_set
:
select id, collect_set(val) from test group by id;
1 ["aa","bb"]
2 ["bb","aa"]
但請注意,collect_set
返回一組與消除重複元素的對象。
你可以在Language Manual Wiki找到更多的細節。
你可以使用CONCAT_WS()和collect_list()來實現這個....
喜歡的東西
select id , concat_ws(",", collect_list(val)) from test group by id;
「」 是在上面的查詢的分隔符。