sql查询‘

如何把mysql的列修改成行显示数据简单实现

 

image

创建测试表:

   2: CREATE TABLE `test` (
   4:   `month` int(11) DEFAULT NULL,
   6: ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入数据:

   2: INSERT INTO `test` VALUES ('1991', '2', '1.2');
   4: INSERT INTO `test` VALUES ('1991', '4', '1.4');
   6: INSERT INTO `test` VALUES ('1992', '2', '2.2');
   8: INSERT INTO `test` VALUES ('1992', '4', '2.3');

 

看到题目要求,仔细想想可以:

利用SUM(IF()) 生成列 + WITH ROLLUP 生成汇总行,并利用 IFNULL将汇总行标题显示为 Total_num

实现
SQL代码块如下:

   2:     sum(if(month=1,amount,0)) as "M1",
   4:     sum(if(month=3,amount,0)) as "M3",
   6: from test
   7: GROUP by year;

效果如下:

image

posted on 2018-07-19 23:46  L小象  阅读(147)  评论(0编辑  收藏  举报

导航