MySQL DML操作--------实现pivot行转列功能最佳实战
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,1. 背景 * 由于MySQL 不支持类型Oracle与SQL Server的pivot功能进行行列转换。2. 表与数据mysql> select * from t_temp;+---------+-
千家信息网最后更新 2025年02月03日MySQL DML操作--------实现pivot行转列功能最佳实战
1. 背景
* 由于MySQL 不支持类型Oracle与SQL Server的pivot功能进行行列转换。
2. 表与数据
mysql> select * from t_temp;+---------+-----------+------------+| year | season | orderCount |+---------+-----------+------------+| 2010年 | 一季度 | 100 || 2010年 | 二季度 | 200 || 2010年 | 三季度 | 300 || 2010年 | 四季度 | 400 || 2011年 | 一季度 | 150 || 2011年 | 二季度 | 300 || 2011年 | 三季度 | 450 || 2011年 | 四季度 | 600 |+---------+-----------+------------+8 rows in set (0.00 sec)
3. 通过子查询与case when判断实现
mysql> select year, sum(orderCount1) '第一季度', -> sum(orderCount2) '第二季度', -> sum(orderCount3) '第三季度', -> sum(orderCount4) '第四季度' -> from -> ( -> select year, -> case when season = '一季度' then -> orderCount -> end orderCount1, -> case when season = '二季度' then -> orderCount -> end orderCount2, -> case when season = '三季度' then -> orderCount -> end orderCount3, -> case when season = '四季度' then -> orderCount -> end orderCount4 -> from t_temp -> ) t -> group by year;+---------+--------------+--------------+--------------+--------------+| year | 第一季度 | 第二季度 | 第三季度 | 第四季度 |+---------+--------------+--------------+--------------+--------------+| 2010年 | 100 | 200 | 300 | 400 || 2011年 | 150 | 300 | 450 | 600 |+---------+--------------+--------------+--------------+--------------+2 rows in set (0.00 sec)
4. 通过IF聚合函数实现
mysql> SELECT year, -> SUM(IF(season = '一季度', orderCount, null)) AS '第一季度', -> SUM(IF(season = '二季度', orderCount, null)) AS '第二季度', -> SUM(IF(season = '三季度', orderCount, null)) AS '第三季度', -> SUM(IF(season = '四季度', orderCount, null)) AS '第四季度' -> FROM t_temp -> GROUP BY year;+---------+--------------+--------------+--------------+--------------+| year | 第一季度 | 第二季度 | 第三季度 | 第四季度 |+---------+--------------+--------------+--------------+--------------+| 2010年 | 100 | 200 | 300 | 400 || 2011年 | 150 | 300 | 450 | 600 |+---------+--------------+--------------+--------------+--------------+2 rows in set (0.00 sec)
5. 总结
以需求驱动技术,技术本身没有优略之分,只有业务之分。
二季度
四季
技术
功能
业务
函数
只有
数据
类型
背景
行列
需求
支持
查询
驱动
实战
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
湖北省果子互联网科技有限公司
猫鼠策划优化服务器怎么样
汽车新能源软件开发
树莓派3我的世界服务器
常见服务器品牌
为什么要有软件开发
计算机网络安全法规有哪些
辽宁专升本数据库考什么
北京好的软件开发要多少钱
数据库原理习题与解析第3版
开速软件开发有限公司招聘
网络安全调查实践报告
数据库语言 排序
软件开发 测试合同范本
网络安全我守护
网络安全内部
用excel数据库搭建工作流
明溪县网络安全保卫大队
网络技术措施的只提供
上海搜网络技术有限公司
微人事软件开发项目实践
广日工程服务网络技术
连接个人热点什么是网络安全密钥
计算机网络技术常用编码方式
战地2042服务器找不到
fm2022中国数据库
盐城工程软件开发咨询报价
网络安全法谁发行的
信息网络安全的第一个时期
多个数据库连接图