mysql 行转列 GROUP_CONCAT 试验

1.概要

很多时候需要用到行专列的方式做数据分析。比如对通讯数据的采集

数据采集结果如下:

变量采集周期
131
251
132
272

我想要看的结果

变量1变量2采集周期
351
372

就是我想看到相关数据的周期变化情况。

2.试验

2.1创建数据如下(表名 tb5)

ID数据1(v1)数据2(v2)周期(m)
11111
22221
33332
44442

SELECT GROUP_CONCAT(v1) FROM db1.tb5

从结果上看,是把所有的数据都变成列了。

 SELECT GROUP_CONCAT(v1) FROM db1.tb5 group by m

从结果上看,是把分组后的数据都放到了一行。

SELECT GROUP_CONCAT(v1,v2) FROM db1.tb5 group by m

 

有点蒙 是 111,222 是 1 11,2  22 的意思吗

SELECT GROUP_CONCAT(v1,"-",v2) FROM db1.tb5 group by m

这下明白了,GROUP_CONCAT只是把不同行的数据默认用,连接,只有不同的变量,中间不加任何连接符,你想连接,你可以自己加。

数据每组第一行数每组第二行数据分组
数据1数据2数据1数据2
1-11,2-22111122第一组(m:1)
3-33,4-44333444第一组(m:2)

 

 

 

 

 

 3.理解总结

对于GROUP_CONCAT,如果后面没有分组,会把全部行的数据显示成一列,这里的列是用,号隔开的也算列的意思。如果有分组,会把分组后的全部行转换成列。

对于每以行中的不同数据,默认不加分隔符合,需要你自己添加。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值