1.概要

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

数据采集结果如下:

我想要看的结果

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

2.试验

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

SELECT GROUP_CONCAT(v1) FROM db1.tb5

mysql 行转列 GROUP_CONCAT 试验-LMLPHP

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

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

mysql 行转列 GROUP_CONCAT 试验-LMLPHP

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

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

mysql 行转列 GROUP_CONCAT 试验-LMLPHP 

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

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

mysql 行转列 GROUP_CONCAT 试验-LMLPHP

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

 

 

 

 

 

 3.理解总结

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

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

11-24 10:30