使用SQL将多行记录合并成一行实例代码

2022-09-15 16:24:36
目录
前言1、数据处理前2,结果数据展示3,hive处理方式4,MySQL处理方式总结

前言

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

1、数据处理前

数据处理前

2,结果数据展示

数据处理后

3,hive处理方式

在hive里面,用concat_ws函数处理

格式:>

参数释义:

    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;
    

    补充:还有几种扩展

    ①可以给类别去重

    SELECT group_id,GROUP_CONCAT(DISTINCT category) FROM `sqltest` GROUP BY group_id

    ②给类别排序

    SELECT group_id,GROUP_CONCAT(category ORDER BY category DESC) FROM `sqltest` GROUP BY group_id

    ③给类别更改分隔符

    SELECT group_id,GROUP_CONCAT(category SEPARATOR '_') FROM `sqltest` GROUP BY group_id
    

    总结

    到此这篇关于使用SQL将多行记录合并成一行的文章就介绍到这了,更多相关SQL多行记录合并一行内容请搜索易采站长站以前的文章或继续浏览下面的相关文章希望大家以后多多支持易采站长站!