SQL字符串的分组聚合

SQL字符串的分组聚合

我们在开发过程中有时需要对表中的数据进行分组,又需要查询出具体信息。
本文中用到的是 group_concat() 函数
作用:
函数返回一个字符串结果,该结果由分组中的值连接组合而成。(多条数据,同样拼接在一个字符串中)
语法:

group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator ‘分隔符’] )

例如:有张用户表user,数据如下图
select * from user;
在这里插入图片描述
1.需要查询年龄相同的人员信息并展示具体名称(默认以,分割)

select 
	account_id, age, 
	group_concat(name) as name, SUM(money) money 
from user 
	GROUP BY age

在这里插入图片描述

2.需要查询年龄相同的人员信息并展示具体名称,名称按照money从小到大排序,分隔值为-

select 
	account_id, age, 
	group_concat(name ORDER BY money SEPARATOR '-') as name, SUM(money) money 
from user 
	GROUP BY age

在这里插入图片描述
3.需要查询年龄相同的并展示具体人员信息和金额,名称按照money从小到大排序

select 
	account_id, age, 
	group_concat(CONCAT_WS('*', name, money) ORDER BY money ) as name, SUM(money) money 
from user 
	GROUP BY age

在这里插入图片描述

另外介绍一下CONCAT_WS() 函数
作用:
将有分隔符的字符串连接起来,表示列之间有指定间隔返回,不会受其中任意一个列的影响,有空值时会忽略空值,其他列组合进行返回。
语法:

CONCAT_WS(separator,str1,str2,)

使用参数:

separator参数为间隔参数;

string1,string2代表字符串,参数同样也是可以是n分割值。

返回值:

注意:函数会忽略任何分隔符参数后的 NULL 值。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值