如何用sql语句将多行合并成一行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用sql语句将多行合并成一行相关的知识,希望对你有一定的参考价值。

如图,合并相同id的数值,要求要按照时间顺序
结果要求把所有id为6-101的数据变成一排,下面几行变成顺下去往后排

参考技术A select id ,time,sum(2),sum(3),sum(4)... from 表
group by id,time
order time
如果time 不是字符类型分组分的不对可以直接转成字符类型到天再用追问

不要sum,继续往后排,排成100列

参考技术B select * from xxx group by id; 按照ID分组。。。追问

变成这样了,只有3-11号开始的,其他数据都没了

参考技术C 错了,上面的

SQL实现将多行记录合并成一行

SQL实现将多行记录合并成一行

我们在数据开发的过程中,经常会遇到这样的需求,就是将多行合并为一行,并且用特定字符隔开。

1、数据处理前

2,结果数据展示

3,hive处理方式

在hive里面,用concat_ws函数处理
格式: concat_ws(‘分隔符’,collect_set/collect_list(字段))
参数释义:
concat_ws:多行合并一行函数
collect_set:合成数组,数据已去重
collect_list:合成数组, 数据未去重

SQL脚本:
select school,concat_ws(',',collect_set(name)) from student
group by school;

4,MySQL处理方式

GROUP_CONCAT(字段 分隔符)
注意:MySQL在GROUP_CONCAT函数中,去重需要使用distinct 关键字,如果需要先排序再合并,也可以使用order by 关键字。

select school,GROUP_CONCAT(name,',') from student
group by school;

我是喵,有问题随时沟通哟~~~

以上是关于如何用sql语句将多行合并成一行的主要内容,如果未能解决你的问题,请参考以下文章

求助,oracle多行数据合并成一行

sql 一行拆多行

mysql中将多行数据合并成一行数据

mysql中将多行数据合并成一行数据

mysql中将多行数据合并成一行数据

SQL多行合并为一行,SQL语句如何写