配置单元sql,如何在组中包含多个列?

2vuwiymt  于 2021-06-25  发布在  Hive
关注(0)|答案(1)|浏览(449)

我有这样的数据:

Customer       DUNS         Employees
   A            1              60
   A            2             100
   A            3              15
   A            4              40

我想要的是:

Customer        NEW CONCAT FIELD
   A            1:60, 2:100, 3:15, 4:40

到目前为止,我掌握的情况如下:

Select 
 Customer
,group_concat(cast(DUNS as string)) as DUNS
,group_concat(cast(Employees as string)) as 'Emps'
From MyTable
group by Customer

结果如下:

Customer        DUNS           EMPS
   A            1, 2, 3, 4     60,100,15,40

我真的很难把这些结合到一个领域。我发现mysql语法看起来像我需要的,但是在我的cloudera/impala编辑器中它不起作用。
就我的一生而言,我找不到以前在哪里做过这件事,但我确信这是个好地方。如何编辑此查询以获取“新concat字段”?

vyu0f0g1

vyu0f0g11#

第一 concat 第二和第三个领域和使用 collect_list 在新的领域

select Customer,collect_list(duns_employees) as duns_employees_list from
(
    select Customer,CONCAT(DUNS,':',Employees) as duns_employees from table
) a
group by Customer;

相关问题