怎么实现 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:小婷儿

● 提供OCP、OCM和高可用最实用的技能培训

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

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

♣题目部分   怎么实现 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:小婷儿 ● 提供OCP、OCM和高可用最实用的技能培训 ● 题目解答若有不当之处,还望各位朋友批评指正,共同进步 有您的支持,小婷儿一定会越来越好!
经验分享 程序员 微信小程序 职场和发展