mysql横竖表转换
订单根据部门和状态分组统计数量
业务: 有一个订单表,里面有个部门字段
和订单状态
的字段,现在需要根据部门
分组统计不同订单状态
的数量
表结构
订单状态是字典 1 待审核 2 待发货 3 已发货 4 已签收
DROP TABLE
IFEXISTS order_info;
CREATE TABLE order_info (`order_id` INT NOT NULL AUTO_INCREMENT COMMENT '订单号',`order_status` VARCHAR ( 32 ) DEFAULT '' COMMENT '订单状态',`dept` VARCHAR ( 32 ) DEFAULT '' COMMENT '部门',PRIMARY KEY ( order_id )
) COMMENT = '订单信息表';INSERT INTO `my-tool`.`order_info` (`order_id`, `order_status`, `dept`) VALUES (null, '1', 'A部门');
INSERT INTO `my-tool`.`order_info` (`order_id`, `order_status`, `dept`) VALUES (null, '4', 'C部门');
INSERT INTO `my-tool`.`order_info` (`order_id`, `order_status`, `dept`) VALUES (null, '2', 'A部门');
INSERT INTO `my-tool`.`order_info` (`order_id`, `order_status`, `dept`) VALUES (null, '2', 'A部门');
INSERT INTO `my-tool`.`order_info` (`order_id`, `order_status`, `dept`) VALUES (null, '3', 'A部门');
INSERT INTO `my-tool`.`order_info` (`order_id`, `order_status`, `dept`) VALUES (null, '4', 'A部门');
INSERT INTO `my-tool`.`order_info` (`order_id`, `order_status`, `dept`) VALUES (null, '1', 'B部门');
INSERT INTO `my-tool`.`order_info` (`order_id`, `order_status`, `dept`) VALUES (null, '2', 'B部门');
INSERT INTO `my-tool`.`order_info` (`order_id`, `order_status`, `dept`) VALUES (null, '2', 'C部门');
INSERT INTO `my-tool`.`order_info` (`order_id`, `order_status`, `dept`) VALUES (null, '1', 'C部门');
查询sql
思路: 先按部门分组 查询同一个状态的数量 ,然后结果拼接 ,再竖表转横表
SELECTa.dept AS '部门',max( CASE a.order_status WHEN '1' THEN a.status_count ELSE 0 END ) AS '待审核',max( CASE a.order_status WHEN '2' THEN a.status_count ELSE 0 END ) AS '待发货',max( CASE a.order_status WHEN '3' THEN a.status_count ELSE 0 END ) AS '已发货',max( CASE a.order_status WHEN '4' THEN a.status_count ELSE 0 END ) AS '已签收'
FROM(SELECTIFNULL( order_status, '1' ) order_status,COUNT( order_status ) status_count,dept FROMorder_info WHEREorder_status = '1' GROUP BYdept UNION ALLSELECTIFNULL( order_status, '2' ) order_status,COUNT( order_status ) status_count,dept FROMorder_info WHEREorder_status = '2' GROUP BYdept UNION ALLSELECTIFNULL( order_status, '3' ) order_status,COUNT( order_status ) status_count,dept FROMorder_info WHEREorder_status = '3' GROUP BYdept UNION ALLSELECTIFNULL( order_status, '4' ) order_status,COUNT( order_status ) status_count,dept FROMorder_info WHEREorder_status = '4' GROUP BYdept ) a
GROUP BYa.dept
结果
mysql横竖表转换相关推荐
- 笔试 -- SQL语句之横竖表转换
文章目录 一.表结构 二.竖表转横表 1-1 case when then 1-2 pivot 三.横表转竖表 1-1 UNION ALL 1-2 unpivot 最近笔试中有 [将竖表转换为横表]的 ...
- mysql横竖表查询
也是最近看到的一个面试题,第二题我还没做出来,如果有大佬路过,求帮助看看 题目如下: 现有SaleInfo存储销售人员日常销售记录 表结构如下 表 UserInfo存储销售人员信息 第一题:统计201 ...
- mysql数据库隐式表_解析MySQL隐式转换问题
一.问题描述 root@mysqldb 22:12: [xucl]> show create table t1\G *************************** 1. row **** ...
- mysql宽表优化_将MySQL的窄表转换成宽表的方法
将MySQL的窄表转换成宽表的方法 在扩展设计中,使用窄表可以很方便的增加新的项.如果用宽表,就会需要修改表结构,很不方便. 而使用宽表在查询过滤数据的时候会比窄表方便很多,数据的记录量也会少很多. ...
- php转换excel文件怎么打开方式,用PHP将mysql数据表转换为excel文件格式_php
详细内容如下: $DB_Server = "localhost"; $DB_Username = "mydowns"; $DB_Password = " ...
- mysql 隐式失误_评“MySQL 隐式转换引起的执行结果错误”
今天看到一篇关于MySQL隐式转换引发执行结果错误的文章: ====================================================================== ...
- MySQL的表空间管理
表空间: MySQL没有真正意义上的表空间管理. MySQL的Innodb包含两种表空间文件模式,默认的共享表空间和每个表分离的独立表空间. 一般来说,当数据量很小的时候建议使用共享表空间的管理方式. ...
- MySQL远程表访问设置
MySQL远程表访问设置 本博文转载自 http://blog.itpub.net/9406448/viewspace-223946 ---- 官网上的信息 使用MySQL FEDE ...
- MySQL - 库表设计之IP和TIMESTAMP的处理
文章目录 学习更多干货 Pre TIMESTAMP IP 总结 学习更多干货 带你搞定MySQL实战,轻松对应海量业务处理及高并发需求,从容应对大场面试 Pre MySQL - 高效的设计MySQL库 ...
最新文章
- 【线段树】【FeyatCup】——2.法法塔的奖励
- mats显存测试软件linux环境,Mats显存检测软件下载-Mats显存检测软件最新版下载-微侠手游网...
- iptables防火墙配置工具ShoreWall的安装和使用实例
- 掌握 Ajax,第 1 部分: Ajax 入门简介
- Linux下的网络桥接与链路聚合
- 使用PDF-XChange Editor为PDF文件添加签名(图片+签名)
- 烽火狼烟丨Microsoft多个安全漏洞风险提示
- ARKit玩起来 - AR卡通秀-史小川-专题视频课程
- html tooltips效果,div+css样式自制带小三角的tooltips效果
- mtk9652对比鸿鹄818哪个好
- r语言中which的使用_大数据分析R语言RStudio使用教程
- 原生 js、javaScript 处理十位数(带有小数点的浮点数时间戳)、十三位数、时间戳, 将时间戳转换成 年、月、日、时、分、秒、毫秒、正常的日期格式
- java annotation class,Java Class类 isAnnotation()方法及示例
- 如何在C语言中添加自己的函数
- Jenkins定时发布项目
- 学生上计算机课的好处,孩子上网课有什么优点
- Srt字幕文件只保留文字
- VM虚拟机 -Mac 镜像安装(黑苹果系统)
- 如何让 SaaS 从好模式变成好生意
- 论文笔记《Visual Dialog》