数据库服务器环境

数据库版本
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经纬度求距离并排序

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐