Mysql的列修改成行并显示数据的简单实现_Mysql

创建测试表:

DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` (
`year` int(11) DEFAULT NULL,
`month` int(11) DEFAULT NULL,
`amount` double DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入数据:

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

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

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

实现

SQL代码块如下:

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

效果如下:

以上所述是小编给大家介绍的Mysql的列修改成行并显示数据的简单实现,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索mysql
, 列修改行
mysql显示数据
mysql读写分离实现、mysql with as 实现、mysql实现分页、mysql实现rownum、mysql实现递归查询,以便于您获取更多的相关知识。

时间: 2024-09-20 05:54:00

Mysql的列修改成行并显示数据的简单实现_Mysql的相关文章

mysql 实现互换表中两列数据方法简单实例_Mysql

由于最近项目,有这样一个需求,是把数据库中的两列数据互换,经过好久才搞定,这里写个简单实例,做过记录. 1.创建表及记录用于测试 CREATE TABLE `product` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '产品id', `name` varchar(50) NOT NULL COMMENT '产品名称', `original_price` decimal(5,2) unsigned NOT NULL COMMEN

MySQL 添加列,修改列,删除列

  ALTER TABLE:添加,修改,删除表的列,约束等表的定义. 查看列:desc 表名; 修改表名:alter table t_book rename to bbb; 添加列:alter table 表名 add column 列名 varchar(30); 删除列:alter table 表名 drop column 列名; 修改列名MySQL: alter table bbb change nnnnn hh int; 修改列名SQLServer:exec sp_rename't_stu

MySQL触发器运用于迁移和同步数据的实例教程_Mysql

1.迁移数据进行数据库移植,SQL Server=>MySQL.SQL Server上有如下的Trigger SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO ALTER TRIGGER [trg_risks] ON dbo.projectrisk FOR INSERT, UPDATE AS BEGIN UPDATE projectrisk SET classification = case when calc>= 9 then 3 when c

mysql 开发技巧之JOIN 更新和数据查重/去重_Mysql

主要涉及:JOIN .JOIN 更新.GROUP BY HAVING 数据查重/去重 1 INNER JOIN.LEFT JOIN.RIGHT JOIN.FULL JOIN(MySQL 不支持).CROSS JOIN 这是在网上找到的非常好的一篇博文,图解 join 语句: CODING HORROR-A Visual Explanation of SQL Joins 下图可以很清楚的明白,join 的数据选取范围 [][1] [1]: yun_qi_img/160725-imooc-mysql

MySQL中删除重复数据的简单方法_Mysql

MYSQL里有五百万数据,但大多是重复的,真实的就180万,于是想怎样把这些重复的数据搞出来,在网上找了一圈,好多是用NOT IN这样的代码,这样效率很低,自己琢磨组合了一下,找到一个高效的处理方式,用这个方式,五百万数据,十来分钟就全部去除重复了,请各位参考. 第一步:从500万数据表data_content_152里提取出不重复的字段SFZHM对应的ID字段到TMP3表 create table tmp3 as select min(id) as col1 from data_content

MySQL中使用load data命令实现数据导入的方法_Mysql

使用方式如下: 复制代码 代码如下: mysql>load data local infile "D:/ab.txt" into table mytbl(name,age); 使用上述的命令就可以将D:/ab.txt文件的内容导入到表mytbl中,其中name和age是表mytbl的字段,对应ab.txt文件中每行的数据.如果编译安装mysql时没有指定 –enable-local-infile,那么在使用上述命令时会报如下错误: 复制代码 代码如下: ERROR 1148 (4

MYSQL删除重复数据的简单方法_Mysql

复制代码 代码如下: CREATETABLE`users`(`id`int(10)NOTNULLAUTO_INCREMENT,`name`char(50)NOTNULL,PRIMARYKEY(`id`)) 复制代码 代码如下: deletefromuserswhereidin(selectmin(id)fromusersgroupbynamehavingcount(name)>1); 结果报错:1093youcan'tspecifytargettable.... 原因是mysql删除动作不能带有

Mysql 取字段值逗号第一个数据的查询语句_Mysql

复制代码 代码如下: select count(*) as lot from OA_sample_check where left(ecnNO, LOCATE(',',ecnNO)-1)='a1'

mysql中创建修改删除数据表例子

在PHP中应用数据库时,通常是先在MySQL客户机的控制台中,使用DDL语句创建网站中的数据库.数据表及修改表结构等操作以后,再在PHP脚本中应用.很少直接在PHP中执行DDL语句动态创建数据库.数据表或修改表的操作,通常也只有在制作安装版本的网站时才会这么做. 1.创建表(CREATE TABLE) 数据库创建以后,使用use命令选定这个新创建的数据库作为默认(当前)数据库使用,就可以继续建立其包含的数据表.数据表的创建是使用表的前提,创建数据表主要是定义数据表的结构,包括数据表的名称.字段名