hive - Hive SQL,如何在group_concat中有多个列?
问题描述
我的数据如下所示:
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 FIELD”?
解决方案
首先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;
推荐阅读
- javascript - 从内部返回函数返回时,管道不是函数
- javascript - 如何用由数组组成的 ul 列表替换 DOM 元素?
- karate - 在空手道中执行断言时出现错误“实际值不是字符串”
- c++ - 字符数组地址和整数数组地址
- java - Spring Security 中的 authorizeRequests 有什么作用?
- javascript - setstate - 动态键值 - 覆盖不合并状态
- angular - 无法读取未定义 Angular 7 的属性“订阅”
- java - 请求的配置文件“pom.xml”无法激活,因为它不存在
- c# - 处理多个具有超时的 CancellationToken
- elasticsearch - SQL 类似于 GROUP BY AND HAVING 示例