♣题目部分 怎么实现 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和高可用最实用的技能培训
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
如果你觉得到文章对您有帮助,点击下方我的头像,赞赏我哦!
有您的支持,小婷儿一定会越来越好!