group_concat

最近有遇到这样一个问题,将数据库中查询得到的数据根据其他共同信息字段将某字段进行整合,即将多行数据连接成为一行,从而简化了查询结果,结果更加简洁方便

这里我们介绍一个函数:group_concat 函数进行聚合查询

group_concat 函数是MySQL提供的一种聚合函数,它可以将多行数据通过指定的分隔符合并成一行

GROUP_CONCAT([DISTINCT] column_name [,column_name ...]
             [ORDER BY {unsigned_integer | col_name | expr}
             [ASC | DESC] [SEPARATOR 'separator_string']])

这里我们结合实例进行分析,原始表格数据信息:

group_concat 函数主要使用步骤为

  1. 首先通过 group by 将数据分组,需要依据分组再对某个字段进行整合,如果不使用group by字段进行分组,group_concat函数则不知道按照什么规则去整合该字段,查询语句也会报错
  2. 使用 group_concat() 函数,包含需要整合的字段,结果会将该字段所有值连接成为一个值
     

详细用法:

  • 使用 DISTINCT 关键字对需要整合字段的值去重,例如同一个分组中需要整合的字段存在多个相同的值(a1,a2,a2),则可以使用distinct关键字对需要整合的字段去重(a1,a2)

  • 使用 order by 函数对需要整合字段的值进行排序

  • 使用 separator 关键字指定整合字段的值之间的连接符号,默认连接符号为逗号","

  • group_concat 函数中可以同时选择多个需要连接的字段,也可指定相同分组中的不同字段之间连接的符号,默认无符号直接连接

使用逗号连接相同分组中的不同字段

总结

  1. group_concat 函数适用于将多行转为一行的情况
  2. 实际情况适用于对于统计一个部门中员工情况,或者一个班级的学生情况
  3. 使用该函数可以将大量重复字段进行聚合,从何使得查询结果更加简洁方便
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值