mysql中查询数据合并(Mysql合并结果接横向拼接字段的实现步骤)
类别:数据库 浏览量:353
时间:2022-01-17 01:50:37 mysql中查询数据合并
Mysql合并结果接横向拼接字段的实现步骤前言
近日在做一个报表功能里面有一个这样的需求是统计各部门在某一月入职和离职的人数
我的步骤
先查出入职的人数
|
select dept , count (1) rcnumber from 员工表 where ( 入职时间 != '' or 入职时间 is not null ) and date_format(入职时间, '%y-%m' )= '2019-09' group by 部门id order by 部门名称 |
查询记录
在查询出离职的人数sql:
|
select dept , count (1) rcnumber from 员工表 where ( 离职时间 != '' or 离职时间 is not null ) and date_format(入职时间, '%y-%m' )= '2019-09' group by 部门id order by 部门名称 |
结果集
我想要的数据是这样的
我有了以下的尝试
1.我将两个查询结果看成两个表,使用了left join 不瞒您说数据格式是我想要的 但是想了想要是右表的记录比较多使用这个不就会少数据吗(right 同理)
2.我使用 union all 这个不是想要的数据 直接将两个结果相加竖向拼接
3.我使用了如同这种 select * from a,b 这个结果是笛卡尔积 两个表相乘的结果
以上方法的sql 就不贴出 意思应该明确了
我不信我就一直问百度 ,百度终于有了回答 我就尝试了一番
1.将入职sql处理如下
|
select a.dept,a.rcnumber,0 as lcnumber from ( select dept , count (1) rcnumber from 员工表 where ( 入职时间 != '' or 入职时间 is not null ) and date_format(入职时间, '%y-%m' )= '2019-09' group by 部门id order by 部门名称) a |
离职sql处理如下:
|
select a.dept,a.lcnumber,0 as rcnumber from ( select dept , count (1) rcnumber from 员工表 where ( 离职时间 != '' or 离职时间 is not null ) and date_format(入职时间, '%y-%m' )= '2019-09' group by 部门id order by 部门名称) a |
在外面包一层也可不包直接在原sql上加 我是为不破坏基本语句 这样当然不够
2.将两个语句进行竖向拼接合并联合sum 拼接
|
select dept , sum (cm_1) as rcnumber, sum (cm_0) as lcnumber from ( select c.id,c.dept, sum (c.lcnumber) as cm_0,c.rcnumber as cm_1 from ( select a.dept,a.rcnumber,0 as lcnumber from ( select dept , count (1) rcnumber from 员工表 where ( 入职时间 != '' or 入职时间 is not null ) and date_format(入职时间, '%y-%m' )= '2019-09' group by 部门id order by 部门名称) a) c group by c.dept union all select d.id,d.dept,d.lcnumber as cm_0, sum (d.rcnumber) as cm_1 from ( select a.dept,a.lcnumber,0 as rcnumber from ( select dept , count (1) rcnumber from 员工表 where ( 离职时间 != '' or 离职职时间 is not null ) and date_format(入职时间, '%y-%m' )= '2019-09' group by 部门id order by 部门名称) a) d group by d.dept) t group by t.dept order by t.id |
最终就得到了我想要的结果
总结
到此这篇关于mysql合并结果接横向拼接字段的文章就介绍到这了,更多相关mysql合并结果接横向拼接字段内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
原文链接:https://juejin.cn/post/6917513395981778958
您可能感兴趣
- mysql账户访问权限(MySQL 权限控制详解)
- python下的sql处理(python中aioysql异步操作MySQL的方法)
- 修改mysql安装服务名称(Apache为mysql以及自己的项目设置虚拟路径)
- mysql 索引使用总结(MySQL复合索引的深入探究)
- mysql水平拓展的瓶颈(MySQL令人大跌眼镜的隐式转换)
- 如何正常查看mysql存储数据文件(Mysql文件存储图文详解)
- django操作默认数据库(Django数据库类库MySQLdb使用详解)
- 将mysql中的表导出来(MySQL之导出整个及单个表数据的操作)
- mysql3种日志(mysql中的7种日志小结)
- mysql的默认隔离级别(再有人问你MySQL的隔离级别是什么,就把这篇文章发给他!)
- mysql索引失效怎么办(MySQL选错索引的原因以及解决方案)
- mysqlgroupby语句实现原理(Mysql中错误使用SQL语句Groupby被兼容的情况)
- mysql binlog日志位置(开启MySQL的binlog日志的方法步骤)
- navicat怎么和mysql连接(Navicat Premium远程连接MySQL数据库的方法)
- 怎么用docker中的mysql连接数据库(连接docker里面的mysql失败解决方法)
- mysql 主从配置详解(MySQL 8.0.15配置MGR单主多从的方法)
- 入秋后的第二场苹果发布会来了 全新M1系列芯片登场(入秋后的第二场苹果发布会来了)
- 苹果正式发布自研芯片M1 5nm 32核心 彻底放弃Intel(苹果正式发布自研芯片M1)
- 苹果自研芯片跑分对比 A16芯片排名靠后,M1系列霸榜(苹果自研芯片跑分对比)
- X86处理器的梦魇 苹果M1自研芯片到底有多强(苹果M1自研芯片到底有多强)
- 泰剧《爱欲之神》Boom kitkong和Great合体杂志(泰剧爱欲之神Boomkitkong和Great合体杂志)
- 素人恋爱综艺火药味十足 男生为赢得芳心集体扯头花,真是出好戏(素人恋爱综艺火药味十足)
热门推荐
- python中的reload(搞清楚 Python traceback的具体使用方法)
- asp.net使用swfupload上传
- mysql 安装阿里云(详解如何在阿里云服务器安装Mysql数据库)
- h5微信手机端debug模式(iOS微信H5页面橡皮回弹效果的踩坑记录)
- html5的新特性
- table 细边框
- python3.7保存文件(详解用python实现基本的学生管理系统文件存储版python3)
- python常用的属性和方法(Python进阶之@property动态属性的实现)
- nginx安全配置提示(wdcp Linux面板nginx启用gzip后js未压缩解决方案)
- 宝塔面板怎么找密码(宝塔面板忘记密码怎么找回?)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9