1. 函数定义:

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

2. 创建测试数据:

  1. CREATE TABLE IF NOT EXISTS `departmentweekdata` (
  2. `department` varchar(255) NOT NULL,
  3. `week` varchar(10) NOT NULL,
  4. `interval` tinyint(4) DEFAULT NULL,
  5. `number` int(11) DEFAULT NULL
  6. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  7.  
  8. --
  9. -- 插入数据 `departmentweekdata`
  10. --
  11.  
  12. INSERT INTO `departmentweekdata` (`department`, `week`, `interval`, `number`) VALUES
  13. ('CAO', '2014-12', 1, 1),
  14. ('GBG1', '2014-12', 1, 0),
  15. ('CAO', '2014-12', 2, 0),
  16. ('GBG1', '2014-12', 2, 0),
  17. ('CAO', '2014-12', 3, 1),
  18. ('GBG1', '2014-12', 3, 0),
  19. ('CAO', '2014-11', 1, 2),
  20. ('GBG1', '2014-11', 1, 0),
  21. ('CAO', '2014-11', 2, 0),
  22. ('GBG1', '2014-11', 2, 0),
  23. ('CAO', '2014-11', 3, 1),
  24. ('GBG1', '2014-11', 3, 0),
  25. ('CAO', '2014-10', 1, 1),
  26. ('GBG1', '2014-10', 1, 0),
  27. ('CAO', '2014-10', 2, 2),
  28. ('GBG1', '2014-10', 2, 0),
  29. ('CAO', '2014-10', 3, 0),
  30. ('GBG1', '2014-10', 3, 0),
  31. ('CAO', '2014-09', 1, 1),
  32. ('GBG1', '2014-09', 1, 0),
  33. ('CAO', '2014-09', 2, 0),
  34. ('GBG1', '2014-09', 2, 0),
  35. ('CAO', '2014-09', 3, 0),
  36. ('GBG1', '2014-09', 3, 0),
  37. ('CAO', '2014-08', 1, 2),
  38. ('GBG1', '2014-08', 1, 0),
  39. ('CAO', '2014-08', 2, 0),
  40. ('GBG1', '2014-08', 2, 0),
  41. ('CAO', '2014-08', 3, 1),
  42. ('GBG1', '2014-08', 3, 0),
  43. ('CAO', '2014-07', 1, 1),
  44. ('GBG1', '2014-07', 1, 0),
  45. ('CAO', '2014-07', 2, 2),
  46. ('GBG1', '2014-07', 2, 0),
  47. ('CAO', '2014-07', 3, 0),
  48. ('GBG1', '2014-07', 3, 0),
  49. ('CAO', '2014-06', 1, 0),
  50. ('GBG1', '2014-06', 1, 0),
  51. ('CAO', '2014-06', 2, 1),
  52. ('GBG1', '2014-06', 2, 0),
  53. ('CAO', '2014-06', 3, 0),
  54. ('GBG1', '2014-06', 3, 0),
  55. ('CAO', '2014-05', 1, 0),
  56. ('GBG1', '2014-05', 1, 0),
  57. ('CAO', '2014-05', 2, 1),
  58. ('GBG1', '2014-05', 2, 0),
  59. ('CAO', '2014-05', 3, 0),
  60. ('GBG1', '2014-05', 3, 0),
  61. ('CAO', '2014-04', 1, 1),
  62. ('GBG1', '2014-04', 1, 0),
  63. ('CAO', '2014-04', 2, 0),
  64. ('GBG1', '2014-04', 2, 0),
  65. ('CAO', '2014-04', 3, 0),
  66. ('GBG1', '2014-04', 3, 0),
  67. ('CAO', '2014-03', 1, 0),
  68. ('GBG1', '2014-03', 1, 0),
  69. ('CAO', '2014-03', 2, 0),
  70. ('GBG1', '2014-03', 2, 0),
  71. ('CAO', '2014-03', 3, 1),
  72. ('GBG1', '2014-03', 3, 0);

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

  1. SELECT
  2. Temp.`department`
  3. ,`Temp`.interval
  4. ,group_concat(number) AS TenWeekString
  5. FROM `weekdata` Temp
  6. 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设定字符串的分隔符:

  1. SELECT
  2. Temp.`department`
  3. ,`Temp`.interval
  4. ,Group_Concat(number SEPARATOR '|') AS TenWeekString
  5. FROM `weekdata` Temp
  6. 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.获得经排序的字符串:

  1. SELECT
  2. Temp.`department`
  3. ,`Temp`.interval
  4. ,Group_Concat(number ORDER BY `temp`.`week` ASC SEPARATOR '|') AS TenWeekString
  5. FROM `weekdata` Temp
  6. 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.去除重复的值:

  1. SELECT
  2. Temp.`department`
  3. ,`Temp`.interval
  4. ,Group_Concat(DISTINCT `number` ORDER BY `temp`.`week` ASC SEPARATOR '|') AS TenWeekString
  5. FROM `weekdata` Temp
  6. 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.设定输出字符串的最大长度:

查看最大长度:

  1. SELECT @@global.group_concat_max_len as `max_length`;

查询结果:

1024

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

  1. 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. 堡垒机初识--paramiko模块

    一.paramiko模块 Python的paramiko模块基于SSH用于连接远程服务器并执行相关的操作. 1.1 在windows上安装paramiko模块 测试环境: win10 , python ...

  2. 重构改善既有代码设计--重构手法02:Inline Method (内联函数)& 03: Inline Temp(内联临时变量)

    Inline Method (内联函数) 一个函数调用的本体与名称同样清楚易懂.在函数调用点插入函数体,然后移除该函数. int GetRating() { return MoreThanfiveLa ...

  3. Flask---使用Bootstrap新建第一个demo

    Flask---使用Bootstrap新建第一个demo 参考自http://www.jianshu.com/p/417bcbad82fb 还有<Flask web开发> 前端用到Boot ...

  4. 面试C++失败

    到今天,面试已经整整一周,一个offer没有收到,mmp. 无奈,痛苦,迷茫. 以前活的太安逸,太舒适了. 自以为是,异想天开. 要重新振作起来. 要不断学习,保持强大,未来之路才会越走越宽.

  5. 用java代码调用shell脚本执行sqoop将hive表中数据导出到mysql

    1:创建shell脚本 touch sqoop_options.sh chmod 777 sqoop_options.sh 编辑文件  特地将执行map的个数设置为变量  测试 可以java代码传参数 ...

  6. 2017ACM暑期多校联合训练 - Team 8 1002 HDU 6134 Battlestation Operational (数论 莫比乌斯反演)

    题目链接 Problem Description The Death Star, known officially as the DS-1 Orbital Battle Station, also k ...

  7. Go语言 5 函数

    文章由作者马志国在博客园的原创,若转载请于明显处标记出处:http://www.cnblogs.com/mazg/ 今天,我们来学习Go语言编程的第五章,函数.首先简单说一下函数的概念和作用.函数是一 ...

  8. tensorflow.nn.bidirectional_dynamic_rnn()函数的用法

    在分析Attention-over-attention源码过程中,对于tensorflow.nn.bidirectional_dynamic_rnn()函数的总结: 首先来看一下,函数: def bi ...

  9. 二. Jmeter--关联

    1. 首先建立一个线程组(Thread Group),为什么所有的请求都要加入线程组这个组件呢?不加不行吗?答案当然是不行的.因为jmeter的所有任务都必须由线程处理,所有任务都必须在线程组下面创建 ...

  10. SQLserver连接本地服务器

    1.打开SQLserver “连接到服务器” 2.服务器类型:数据库引擎 3.服务器名称:浏览更多->本地服务器->数据库引擎->选择本地服务器 4.身份验证:windows验证 5 ...