首页 > 解决方案 > 如何使用配置单元中的公共列连接两行数据

问题描述

如何使用配置单元中的公共列连接两行的数据,我尝试了以下格式,但我错过了顺序。

输入数据

column1         column2
1000000002      AA-Test1:1
1000000002      BB-Test2:1 

期望的结果

1000000002      AA-Test1:1##BB-Test2:1

但我越来越

1000000002      BB-Test1:1##AA-Test2:1

我不想在附加时翻转值。

我尝试使用以下查询

CREATE TABLE Tabel1
AS
SELECT column1, concat_ws("##", COLLECT_SET(column2))
AS column2
FROM Table2 group by column1 order by column2;

有人能帮我吗。

标签: hivehiveql

解决方案


使用子查询按 column2 排序,然后使用concat_wsandcollect_list

create table tabel1
as
select 
    a.column1, 
    concat_ws("##", collect_list(a.column2)) as column2
from ( select column1,column2 from Table2 sort by column2 ) a
group by a.column1;

推荐阅读