group_concat的使用
1、场景
仓库使用系统实现了先进先出,给仓库的备货单原先设计如下模式:
tx3表:

不同的批次分开行显示,仓库从这个备货单可以知道这个货品需要备货哪些批次,多少数量
用了几天,仓库对此备货单样式提出如下看法
- 一个备货单很多个货品,一个货品如果存在很多批次,一个备货单需要打印几张纸,比较麻烦
- 不够直观,希望很直观看到某个货品总的需求量,需要备货的批次与分别的数量
于是,使用group_concat实现此需求
2、group_concat的用法
group_concat的用途:按分组来把多行数据显示在一行,将group by产生的同一个分组中的值连接起来,返回一个字符串结果。
完整语法:group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
说明:通过使用distinct可以排除重复值;如果希望对结果中的值进行排序,可以使用order by子句;separator是一个字符串值,缺省为一个逗号。
具体使用如下,以零件号,品名,snp分组,把批次,此批次的数量,此批次的箱数连接起来,逗号分割
select
零件号,
品名,
snp,
sum(需求数量) 需求数量,
group_concat(批次,':',需求数量,'个:',箱数,'箱') 批次信息
from tx3 group by 零件号,品名,snp
结果:

从仓库备货的角度,这个样式一看就知道货品总的需求数,需要备货的批次信息,看上去很直观
同时,数据行也不会太多,一般打印一张A4纸就可以
确实要三现主义,不站在仓库的角度还真考虑不到这种细节
group_concat的使用的更多相关文章
- GROUP_CONCAT将里面拼接的字符串排序
SELECT oam.id , GROUP_CONCAT(oacm.name) category FROM om_article_manage oam LEFT JOIN om_article_cat ...
- MySQL中的group_concat函数
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 以cat_id分组,把name字段的值打印在一行, ...
- percona教程:MySQL GROUP_CONCAT的使用
percona有一篇blog: The power of MySQL GROUP_CONCAT 比较详细地介绍了GROUP_CONCAT函数的用法.简单地翻译了一下. 假设你有4名工程师,这周他们为6 ...
- MySQL GROUP_CONCAT函数使用示例:如何用一个SQL查询出一个班级各个学科第N名是谁?
如何用一个SQL查询出一个班级各个学科第N名是谁? 首先贴出建表语句,方便大家本地测试: -- 建表语句 CREATE TABLE score ( id INT NOT NULL auto_incre ...
- mysql 函数 GROUP_CONCAT 单元格中最长字符串和excel导出问题
GROUP_CONCAT 使用方式GROUP_CONCAT ([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) SELECT ...
- mysql GROUP_CONCAT+ GROUP BY + substring_index获取分组的前几名
mysql方法来源于:http://www.cnblogs.com/jjcc/p/5896588.html ###在网上看到一篇,非常赞的方法### 比如说要获取班级的前3名,mysql就可以用GRO ...
- mysql分组合并GROUP_CONCAT
SELECT pid, GROUP_CONCAT(field ORDER BY coder desc) 'msg'from product_field GROUP BY pid 分 ...
- mysql 分组查询问题 group_concat
这几天在做购物车的时候.购物车内的商品为一个商品占一行,结果再从数据库读出的时候,没有分组,而是循环所有的内容出来,然后进行判断.如果一样的话就把他保存到一个变量中.但是自己逻辑没搞清楚.一直出bug ...
- MySQL中函数CONCAT及GROUP_CONCAT
一.CONCAT()函数CONCAT()函数用于将多个字符串连接成一个字符串.使用数据表Info作为示例,其中SELECT id,name FROM info LIMIT 1;的返回结果为+----+ ...
- group_concat函数使用
t1表 语句: select type,group_concat(name) from t1 group by type 结果
随机推荐
- Ubuntu18.04提示wifi无法连接
[时间:2018-07] [状态:Open] [关键词:Ubuntu 18.04,wifi,apt-get,mount] 0 现象描述及背景 最近需要一个Ubuntu的系统作为开发环境,随机下载了v1 ...
- 电子商务(电销)平台中订单模块(Order)数据库设计明细(转)
以下是自己在电子商务系统设计中的订单模块的数据库设计经验总结,而今发表出来一起分享,如有不当,欢迎跟帖讨论~ 订单表 (order)|-- 自动编号(order_id, 自增长主键)|-- 订单单号( ...
- 【转】wpf 模板选择器DataTemplateSelector及动态绑定,DataTemplate.Triggers触发器的使用
通常,如果有多个 DataTemplate 可用于同一类型的对象,并且您希望根据每个数据对象的属性提供自己的逻辑来选择要应用的 DataTemplate,则应创建 DataTemplateSelect ...
- 当我们直接打印定义的对象的时候,隐含的是打印toString()的返回值。
以下介绍的三种方法属于Object: (1) finalize方法:当一个对象被垃圾回收的时候调用的方法. (2) toString():是利用字符串来表示对象. 当我们直接打印定义的对象的时 ...
- IDEA自动生成序列化ID
1.安装 serialVersionUID 插件: 2.设置你的IDEA为检查序列化ID 3.重启IDEA(有的版本可以不重启) 4.在需要自动生成序列化ID的类中使用快捷键:Alt+Insert 转 ...
- maven jdk 版本配置
一种是配置 pom.xml,一种是配置 settings.xml. 方式一:settings.xml 配置 打开 %maven%/conf/settings.xml 文件并编辑它(%maven% 表示 ...
- 使用Pip在离线环境安装Python依赖库
一.安装多个包 1.有网的服务器 1.生成requirement.txt文件 pip freeze >/tmp/wheel_pip/requirements.txt 这个命令会把当前环境下面的p ...
- linux shell下16进制 “\uxxxx” unicode to UTF-8中文
问题出现背景: 项目中有个通过ip获取归属地城市需求,我是直接通过新浪的ip归属查询接口来获取的.我使用的是shell脚本调用 RESULT=$(curl -s 'http://int.dpool.s ...
- HTML中include file的用法
语法 <!-- #include PathType = "FileName" --> 参数 PathType 路径类型 路径可为以下某种类型: 文件 该文件名是带有 ...
- CF 1131C Birthday
C. Birthday time limit per test 1 second memory limit per test 256 megabytes input standard input ou ...