怎么实现 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和高可用最实用的技能培训

● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

如果你觉得到文章对您有帮助,点击下方我的头像,赞赏我哦!

有您的支持,小婷儿一定会越来越好!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值