本文主要是介绍怎么实现 MySQL 表的行转列 -- 032,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
♣题目部分 怎么实现 MySQL 表的行转列?yearmonthamount199212.1199222.2199232.3199111.1199121.2199131.3199141.4199242.4将上表转换为yearm1m2m3m419911.11.21.31.419922.12.22.32.4 ♣答案部分
建表CREATE TABLE `abc` (`year` int(32) ,`month` int(32) ,`amount` float(32,1) ,PRIMARY key(year,month,amount)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO `abc` VALUES ('1992', '1', '2.1');
INSERT INTO `abc` VALUES ('1992', '2', '2.2');
INSERT INTO `abc` VALUES ('1992', '3', '2.3');
INSERT INTO `abc` VALUES ('1992', '4', '2.4');
INSERT INTO `abc` VALUES ('1991', '1', '1.1');
INSERT INTO `abc` VALUES ('1991', '2', '1.2');
INSERT INTO `abc` VALUES ('1991', '3', '1.3');
INSERT INTO `abc` VALUES ('1991', '4', '1.4');
答案SELECT year, SUM(CASE WHEN month=1 THEN amount ELSE 0 END) AS m1,SUM(CASE WHEN MONTH=2 THEN amount ELSE 0 END) AS m2,SUM(CASE WHEN month=3 THEN amount ELSE 0 END) AS m3,SUM(CASE WHEN month=4 THEN amount ELSE 0 END) AS m4
FROM abc
GROUP BY year
ORDER BY year;
About Me:小婷儿
● 本文作者:小婷儿,专注于python、数据分析、数据挖掘、机器学习相关技术,也注重技术的运用
● 作者博客地址:https://blog.csdn.net/u010986753
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● 微信:tinghai87605025 联系我加微信群
● QQ:87605025
● QQ交流群py_data :483766429
● 公众号:python宝 或 DB宝
● 提供OCP、OCM和高可用最实用的技能培训
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
如果你觉得到文章对您有帮助,点击下方我的头像,赞赏我哦!
有您的支持,小婷儿一定会越来越好!
这篇关于怎么实现 MySQL 表的行转列 -- 032的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!