-- impalawith data_ as(select1as id,'aa'as name
unionallselect2as id,'aa'as name
unionallselect3as id,'aa'as name
unionallselect4as id,'d'as name
unionallselect5as id,'c'as name
unionallselect6as id,'aa'as name
unionallselect7as id,'aa'as name
unionallselect8as id,'e'as name
unionallselect9as id,'f'as name
unionallselect10as id,'g'as name
)selectmax(id)as id,
group_concat(name,'|') name_
from data_
groupby
name
-- hivewith data_ as(select1as id,'aa'as name
unionallselect2as id,'aa'as name
unionallselect3as id,'aa'as name
unionallselect4as id,'d'as name
unionallselect5as id,'c'as name
unionallselect6as id,'aa'as name
unionallselect7as id,'aa'as name
unionallselect8as id,'e'as name
unionallselect9as id,'f'as name
unionallselect10as id,'g'as name
)selectmax(id)as id,
concat_ws('|', collect_list(name)) name_
from data_
groupby
name
A–>C实现:
--impalawith data_ as(select1as id,'aa'as name
unionallselect2as id,'aa'as name
unionallselect3as id,'aa'as name
unionallselect4as id,'d'as name
unionallselect5as id,'c'as name
unionallselect6as id,'aa'as name
unionallselect7as id,'aa'as name
unionallselect8as id,'e'as name
unionallselect9as id,'f'as name
unionallselect10as id,'g'as name
)SELECTmax(id)as id,
group_concat(name,'|')AS name_
FROM(SELECT
id,
name,(id - row_number()OVER(PARTITIONBY name ORDERBY id))AS grp
FROM
data_
) subquery
GROUPBY
grp
-- hive with data_ as(select1as id,'aa'as name
unionallselect2as id,'aa'as name
unionallselect3as id,'aa'as name
unionallselect4as id,'d'as name
unionallselect5as id,'c'as name
unionallselect6as id,'aa'as name
unionallselect7as id,'aa'as name
unionallselect8as id,'e'as name
unionallselect9as id,'f'as name
unionallselect10as id,'g'as name
)SELECTmax(id)as id,
concat_ws(collect_list(name,'|'))AS name_
FROM(SELECT
id,
name,(id - row_number()OVER(PARTITIONBY name ORDERBY id))AS grp
FROM
data_
) subquery
GROUPBY
grp