odps多行合并为一行

文章介绍了如何在ODPS中使用WM_CONCAT和CONCAT_WS这两个聚合函数来合并具有相同分数的学生名字,将多行数据整合为单行,并以逗号作为分隔符。提供了对应的SQL语句示例,展示了执行后的结果。
摘要由CSDN通过智能技术生成

目录

一、具体要求

二、实现(WM_CONCAT、CONCAT_WS)

1、WM_CONCAT 实现

2、CONCAT_WS 实现

三、执行结果 


一、具体要求

在ODPS中,多行合并为一行可以通过使用ODPS SQL语句中的聚合函数来实现。

假设我们有一个表格,其中包含多行数据:

学生分数
namescore
Tom20
Jack20
Lucy30

将上述表格中的相同分数的人合并为一行,并用逗号分隔每个值;

二、实现(WM_CONCATCONCAT_WS

1、WM_CONCAT 实现

SELECT
    score
    ,WM_CONCAT(',', name) AS merged_data
FROM table_name
group by score
;  

WM_CONCAT(separator,string) ,以separator作为分隔符,合并name字段

2、CONCAT_WS 实现

SELECT
    score
    ,CONCAT_WS(',', collect_set(name)) AS merged_data
FROM table_name
group by score
;  

在这个例子中,CONCAT_WS函数用于将name合并为一个字符串,并用逗号分隔每个值。

三、执行结果 

执行以上SQL语句后,将得到以下结果:

scoremerged_data
20Tom,Jack
30Lucy

这个结果表示将原始表格中的所有数据合并为一行,并用逗号分隔每个值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值