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

创建测试表:
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;
效果如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步