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

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

image

创建测试表:

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

猜你喜欢

转载自www.cnblogs.com/Lxiaoxiang/p/9339132.html
今日推荐