博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何把mysql的列修改成行显示数据简单实现
阅读量:4355 次
发布时间:2019-06-07

本文共 1010 字,大约阅读时间需要 3 分钟。

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

 

创建测试表:

1: DROP TABLE IF EXISTS `test`;
2: CREATE TABLE `test` (
3:   `year` int(11) DEFAULT NULL,
4:   `month` int(11) DEFAULT NULL,
5:   `amount` double DEFAULT NULL
6: ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入数据:

1: INSERT INTO `test` VALUES ('1991', '1', '1.1');
2: INSERT INTO `test` VALUES ('1991', '2', '1.2');
3: INSERT INTO `test` VALUES ('1991', '3', '1.3');
4: INSERT INTO `test` VALUES ('1991', '4', '1.4');
5: INSERT INTO `test` VALUES ('1992', '1', '2.1');
6: INSERT INTO `test` VALUES ('1992', '2', '2.2');
7: INSERT INTO `test` VALUES ('1992', '3', '2.3');
8: INSERT INTO `test` VALUES ('1992', '4', '2.3');

 

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

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

实现

SQL代码块如下:

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

效果如下:

转载于:https://www.cnblogs.com/HRuinger/p/5989839.html

你可能感兴趣的文章
Java 日期往后推迟n天
查看>>
Web应用漏洞评估工具Paros
查看>>
Git 和 Github 使用指南
查看>>
20180925-4 单元测试
查看>>
mysql的数据存储
查看>>
[转载] Activiti Tenant Id 字段释疑
查看>>
[Java 8] (8) Lambda表达式对递归的优化(上) - 使用尾递归 .
查看>>
SQL Server-聚焦移除Bookmark Lookup、RID Lookup、Key Lookup提高SQL查询性能
查看>>
最小权限的挑战
查看>>
jquery 视觉特效(水平滚动图片)
查看>>
SVG笔记
查看>>
linux下使用dd命令写入镜像文件到u盘
查看>>
001---进程
查看>>
视频人脸检测——OpenCV版(三)
查看>>
php获取来访者在搜索引擎搜索某个关键词,进入网站
查看>>
物联网架构成长之路(8)-EMQ-Hook了解、连接Kafka发送消息
查看>>
2018-2019-1 20165234 20165236 实验二 固件程序设计
查看>>
IDEA的GUI连接数据库写入SQL语句的问题总结
查看>>
Xpath在选择器中正确,在代码中返回的是空列表问题
查看>>
leecode第一百九十八题(打家劫舍)
查看>>