mysql pgsql 实现多行记录合并成一行 分组合并 用指定字符做分割

mysql pgsql 按照指定字段分组实现多行合并成一行

数据库服务器环境

数据库版本
mysql5.7
PostgreSQL10.10

原表结构和数据

idnamegendermajor
1张三篮球
2张三足球
3李四游泳
4小周跑步
5王二健身
6小周网球
7张三足球

mysql

SQL

select demo_table.name, group_concat(major separator ',') as combine_name
from demo_table
group by name

结果

namecombine_name
小周跑步,网球
张三篮球,足球,足球
李四游泳
王二健身

去重

select demo_table.name, group_concat(distinct major separator ',') as combine_name
from demo_table
group by name

去重之后的查询结果

namecombine_name
小周网球,跑步
张三篮球,足球
李四游泳
王二健身

pgsql

SQL

select name ,
       array_to_string(array (select unnest(array_agg(major))), ',') as combination_name
from demo_table
group by name

结果

namecombination_name
张三篮球,足球,足球
李四游泳
小周跑步,网球
王二健身

去重

select name ,
       array_to_string(array (select unnest(array_agg(distinct major))), ',') as combination_name
from demo_table
group by name

去重之后的结果

namecombination_name
小周网球,跑步
张三篮球,足球
李四游泳
王二健身

相关文章导读

mysql 在select查询语句中使用临时变量累计求和 ;
相同列值的记录中再根据条件取其中最大或最新一条;
mysql经纬度求距离并排序

    原文作者:wangxudongx
    原文地址: https://blog.csdn.net/wangxudongx/article/details/119415900
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞