Group_Concat函数示例
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函数示例的更多相关文章
- mysql中group_concat函数用法
该函数返回带有来自一个组的连接的非NULL值的字符串结果.该函数是一个增强的Sybase SQL Anywhere支持的基本LIST()函数. 语法结构: GROUP_CONCAT([DISTINCT ...
- 关于mysql中GROUP_CONCAT函数的使用
偶然看到公司存储过程中有个字符串拼接的函数,改bug过程中使用到了,还挺有用的,于是记录下来方便记忆,帮助有需要的人. 这是我需要整理的串,他是调用了一个存储过程,传入组织机构的id和迭代层数,返回来 ...
- Format 函数示例
Format 函数示例本示例显示用 Format 函数做格式化输出的不同用法.对于日期分隔号(/),时间分隔号(:),以及 AM/ PM 等文本而言,其真正的显示格式会因计算机上的国际标准不同而有所差 ...
- group_concat函数详解
来自: http://hchmsguo.iteye.com/blog/555543 MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的 ...
- ThinkPHP邮件发送函数示例
ThinkPHP邮件发送函数示例详解 /** * 发送邮件 * @param $tomail * @param $subject * @param $body * @param string $con ...
- group_concat函数与find_in_set()函数相结合
一:group_concat函数详解 1.语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'] ...
- 教您如何使用MySQL group_concat函数
MySQL group_concat函数是典型的字符串连接函数,下面就为您介绍MySQL group_concat的语法,希望对您学习MySQL group_concat函数有所帮助. MySQL g ...
- Mysql group_concat函数被截断的问题
mysql group_concat函数被截断的问题 MySQL的 group_concat 函数默认返回1024个字节长度,超过长度的会被截断.最近程序中就遇到这个问题了. 通过如下命令可以查看 ...
- mysql中的group_concat函数的用法
本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) . MySQL中group_concat函数 完整的语法如下: grou ...
随机推荐
- discuz安装小云app
小云app登录注册: https://oauth.apps.xiaoyun.com/auth/login.do?authentication_error=1 from:http://lusongson ...
- 配置JNDI数据源
配置JNDI数据源: 在MATE-INF中新建一个context.xml <?xml version="1.0" encoding="UTF-8"?> ...
- php桶排序简单实现
桶排序中最重要的环节是映射函数. 初步学习桶排序的过程中,映射比较简单.实现代码如下: /** * 第一种桶排序的办法,每个桶存储相同值的数据 * */ function bucketSort($no ...
- 关于WEB-INF目录不提供外部访问及JSP引用 js,css 文件路径问题
在 web 项目开发过程中,我们常常使用到 JSP,以及对静态资源,js,css 等引用,但是我们应该把这些资源文件放在哪个目录下面咧,怎么引用. 当然如果是前后端分离的项目倒不用考虑这些. WEB- ...
- Jenkins使用教程之创建job
第一部分:常规设置(general) 1.点击新建,进入新建项目页面 2.输入项目名称,选择构建一个自由风格的软件项目(里面可以自己自由进行配置,使用更加灵活),点击ok 3.项目名称与描述 4.gi ...
- Spring Boot 使用IntelliJ IDEA创建一个web开发实例(三)
属性配置 1.配置application.properties文件 配置web访问端口和context path server.port = 8081 server.servlet.context-p ...
- MongoDB 分页
使用Skip和limit可以如下做数据分页: Code: page1 = db.things.find().limit(20) page2 = db.things.find().skip(20).li ...
- 查询timestamp类型数据
$where=" roleid = 8 and lizhi = 0 and branchid IN (".implode(",",$ids).") a ...
- Vue 使用自定义组件时报错:Uncaught TypeError: Cannot assign to read only property 'exports' of object '#<Object>'
自己试做了一下vue的插件 参考element-ui: 写了一个组件 import message from './packages/message/index.js'; const install ...
- Unity 添加鼠标右键事件
把此类放到 Editor下使用就OK using UnityEngine; using System.Collections; using System.Collections.Generic; us ...