1. 函数定义:

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

2. 创建测试数据:

CREATE TABLE IF NOT EXISTS `departmentweekdata` (
`department` varchar(255) NOT NULL,
`week` varchar(10) NOT NULL,
`interval` tinyint(4) DEFAULT NULL,
`number` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1; --
-- 插入数据 `departmentweekdata`
-- INSERT INTO `departmentweekdata` (`department`, `week`, `interval`, `number`) VALUES
('CAO', '2014-12', 1, 1),
('GBG1', '2014-12', 1, 0),
('CAO', '2014-12', 2, 0),
('GBG1', '2014-12', 2, 0),
('CAO', '2014-12', 3, 1),
('GBG1', '2014-12', 3, 0),
('CAO', '2014-11', 1, 2),
('GBG1', '2014-11', 1, 0),
('CAO', '2014-11', 2, 0),
('GBG1', '2014-11', 2, 0),
('CAO', '2014-11', 3, 1),
('GBG1', '2014-11', 3, 0),
('CAO', '2014-10', 1, 1),
('GBG1', '2014-10', 1, 0),
('CAO', '2014-10', 2, 2),
('GBG1', '2014-10', 2, 0),
('CAO', '2014-10', 3, 0),
('GBG1', '2014-10', 3, 0),
('CAO', '2014-09', 1, 1),
('GBG1', '2014-09', 1, 0),
('CAO', '2014-09', 2, 0),
('GBG1', '2014-09', 2, 0),
('CAO', '2014-09', 3, 0),
('GBG1', '2014-09', 3, 0),
('CAO', '2014-08', 1, 2),
('GBG1', '2014-08', 1, 0),
('CAO', '2014-08', 2, 0),
('GBG1', '2014-08', 2, 0),
('CAO', '2014-08', 3, 1),
('GBG1', '2014-08', 3, 0),
('CAO', '2014-07', 1, 1),
('GBG1', '2014-07', 1, 0),
('CAO', '2014-07', 2, 2),
('GBG1', '2014-07', 2, 0),
('CAO', '2014-07', 3, 0),
('GBG1', '2014-07', 3, 0),
('CAO', '2014-06', 1, 0),
('GBG1', '2014-06', 1, 0),
('CAO', '2014-06', 2, 1),
('GBG1', '2014-06', 2, 0),
('CAO', '2014-06', 3, 0),
('GBG1', '2014-06', 3, 0),
('CAO', '2014-05', 1, 0),
('GBG1', '2014-05', 1, 0),
('CAO', '2014-05', 2, 1),
('GBG1', '2014-05', 2, 0),
('CAO', '2014-05', 3, 0),
('GBG1', '2014-05', 3, 0),
('CAO', '2014-04', 1, 1),
('GBG1', '2014-04', 1, 0),
('CAO', '2014-04', 2, 0),
('GBG1', '2014-04', 2, 0),
('CAO', '2014-04', 3, 0),
('GBG1', '2014-04', 3, 0),
('CAO', '2014-03', 1, 0),
('GBG1', '2014-03', 1, 0),
('CAO', '2014-03', 2, 0),
('GBG1', '2014-03', 2, 0),
('CAO', '2014-03', 3, 1),
('GBG1', '2014-03', 3, 0);

2. 根据部门,间隔;将数量列组合成一个字符串;

SELECT
Temp.`department`
,`Temp`.interval
,group_concat(number) AS TenWeekString
FROM `weekdata` Temp
GROUP BY Temp.`department`,Temp.`interval`;

查询结果:

CAO 1 1,1,1,0,1,2,2,0,0,1
CAO 2 0,0,1,1,2,0,2,0,0,0
CAO 3 1,1,0,0,0,1,0,0,1,0
GBG1 1 0,0,0,0,0,0,0,0,0,0
GBG1 2 0,0,0,0,0,0,0,0,0,0
GBG1 3 0,0,0,0,0,0,0,0,0,0

3. 同样的查询, SEPARATOR设定字符串的分隔符:

SELECT
Temp.`department`
,`Temp`.interval
,Group_Concat(number SEPARATOR '|') AS TenWeekString
FROM `weekdata` Temp
GROUP BY Temp.`department`,Temp.`interval`;

查询结果:

CAO 1 1|1|1|0|1|2|2|0|0|1
CAO 2 0|0|1|1|2|0|2|0|0|0
CAO 3 1|1|0|0|0|1|0|0|1|0
GBG1 1 0|0|0|0|0|0|0|0|0|0
GBG1 2 0|0|0|0|0|0|0|0|0|0
GBG1 3 0|0|0|0|0|0|0|0|0|0

4.获得经排序的字符串:

SELECT
Temp.`department`
,`Temp`.interval
,Group_Concat(number ORDER BY `temp`.`week` ASC SEPARATOR '|') AS TenWeekString
FROM `weekdata` Temp
GROUP BY Temp.`department`,Temp.`interval`;

查询结果:

CAO 1 0|1|0|0|1|2|1|1|2|1
CAO 2 0|0|1|1|2|0|0|2|0|0
CAO 3 1|0|0|0|0|1|0|0|1|1
GBG1 1 0|0|0|0|0|0|0|0|0|0
GBG1 2 0|0|0|0|0|0|0|0|0|0
GBG1 3 0|0|0|0|0|0|0|0|0|0

5.去除重复的值:

SELECT
Temp.`department`
,`Temp`.interval
,Group_Concat(DISTINCT `number` ORDER BY `temp`.`week` ASC SEPARATOR '|') AS TenWeekString
FROM `weekdata` Temp
GROUP BY Temp.`department`,Temp.`interval`;

查询结果:

CAO 1 0|2|1
CAO 2 1|2|0
CAO 3 1|0
GBG1 1 0
GBG1 2 0
GBG1 3 0

6.设定输出字符串的最大长度:

查看最大长度:

SELECT @@global.group_concat_max_len as `max_length`;

查询结果:

1024

设定最大长度(最大值不能超过4294967295):

SET GLOBAL group_concat_max_len=1024000000;

Group_Concat函数示例的更多相关文章

  1. mysql中group_concat函数用法

    该函数返回带有来自一个组的连接的非NULL值的字符串结果.该函数是一个增强的Sybase SQL Anywhere支持的基本LIST()函数. 语法结构: GROUP_CONCAT([DISTINCT ...

  2. 关于mysql中GROUP_CONCAT函数的使用

    偶然看到公司存储过程中有个字符串拼接的函数,改bug过程中使用到了,还挺有用的,于是记录下来方便记忆,帮助有需要的人. 这是我需要整理的串,他是调用了一个存储过程,传入组织机构的id和迭代层数,返回来 ...

  3. Format 函数示例

    Format 函数示例本示例显示用 Format 函数做格式化输出的不同用法.对于日期分隔号(/),时间分隔号(:),以及 AM/ PM 等文本而言,其真正的显示格式会因计算机上的国际标准不同而有所差 ...

  4. group_concat函数详解

    来自: http://hchmsguo.iteye.com/blog/555543 MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的 ...

  5. ThinkPHP邮件发送函数示例

    ThinkPHP邮件发送函数示例详解 /** * 发送邮件 * @param $tomail * @param $subject * @param $body * @param string $con ...

  6. group_concat函数与find_in_set()函数相结合

    一:group_concat函数详解 1.语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'] ...

  7. 教您如何使用MySQL group_concat函数

    MySQL group_concat函数是典型的字符串连接函数,下面就为您介绍MySQL group_concat的语法,希望对您学习MySQL group_concat函数有所帮助. MySQL g ...

  8. Mysql group_concat函数被截断的问题

    mysql group_concat函数被截断的问题   MySQL的 group_concat 函数默认返回1024个字节长度,超过长度的会被截断.最近程序中就遇到这个问题了. 通过如下命令可以查看 ...

  9. mysql中的group_concat函数的用法

    本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) . MySQL中group_concat函数 完整的语法如下: grou ...

随机推荐

  1. jni 找不到本地方法的实现

    使用JNI开发,需要在java端声明本地方法,并在jni层实现本地方法. 有时运行项目时会先抛出异常:No implementation found for native xxx 然后直接挂掉:jav ...

  2. SQL基础操作

    SQL是操作数据的语言 增加记录: insert into 数据表名称(字段1,字段2,字段3....)values(值1,值2,值3.....) 查看表结构:desc 表名 inset into x ...

  3. 不平衡分类学习方法 --Imbalaced_learn

    最近在进行一个产品推荐课题时,由于产品的特性导致正负样本严重失衡,远远大于3:1的比例(个人认为3:1是建模时正负样本的一个临界点),这样的样本不适合直接用来建模,例如正负样本的比例达到了50:1,就 ...

  4. Liunx 下载文件夹下所有文件

    136down voteaccepted You may use this in shell: wget -r --no-parent http://abc.tamu.edu/projects/tzi ...

  5. 51nod 1217 Minimum Modular

    N个不同的数a[1],a[2]...a[n],你可以从中去掉K个数,并且找到一个正整数M,使得剩下的N - K个数,Mod M的结果各不相同,求M的最小值. Input 第1行:2个数N, K,中间用 ...

  6. 源自人脑的神奇算法 -- 读《How to make your own neural network》有感

    最近读到了一本很好的关于机器学习-深度学习的书值得推荐下并特意做了这个学习总结. 为什么推荐 在我认为好书(计算机类)的评判有几个标准: 试图以通俗的语言阐述,并在引入任何新概念的时候都讲述来龙去脉, ...

  7. 【洛谷 P1502】 窗口的星星(扫描线)

    题目链接 把每个星星作为左下角,做出长为\(w-0.5\),宽为\(h-0.5\)的矩形. \(-0.5\)是因为边框上的不算. 离散化\(y\)坐标. 记录\(2n\)个\(4\)元组\((x,y1 ...

  8. JodaTime报时区异常错误

    在将爬下来的网页解析需要的字段批量入口的时候(逻辑类似下面): @Test public void test_001(){ String TIME = "1990-04-15"; ...

  9. MM(Majorize-Minimization, Minorize-Maximization)优化方法

    MM算法思想 MM算法是一种迭代优化方法,它利用函数的凸性来找到原函数的最大值或最小值.当原目标函数\(f(\theta)\)较难优化时,算法不直接对原目标函数求最优解,而去求解逼近于原目标函数的一个 ...

  10. Traffic-Server配置(待补充和更新)

    Server 5.3.2 测试1.裸盘:remap.configmap http://192.168.227.131 http://192.168.227.131:8080 #traffic_serv ...