码迷,mamicode.com
首页 > 数据库 > 详细

mysql行转换为列

时间:2017-08-01 19:28:46      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:结果   images   group by   ble   显示   ase   blog   key   bsp   

1.建表

CREATE TABLE `t_log_code_num` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `server_id` int(3) NOT NULL,
  `date` date NOT NULL,
  `code` varchar(20) NOT NULL,
  `num` int(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

 

2.录入数据

INSERT INTO t_log_code_num (`server_id`, `date`, `code`, `num`) VALUES (‘1‘, ‘2017-07-31‘, ‘201058‘, ‘1‘);
INSERT INTO t_log_code_num (`server_id`, `date`, `code`, `num`) VALUES (‘2‘, ‘2017-07-31‘, ‘201612‘, ‘2113‘);
INSERT INTO t_log_code_num (`server_id`, `date`, `code`, `num`) VALUES (‘1‘, ‘2017-07-30‘, ‘201058‘, ‘1‘);
INSERT INTO t_log_code_num (`server_id`, `date`, `code`, `num`) VALUES (‘2‘, ‘2017-07-30‘, ‘201314‘, ‘310‘);
INSERT INTO t_log_code_num (`server_id`, `date`, `code`, `num`) VALUES (‘1‘, ‘2017-07-29‘, ‘201322‘, ‘1890‘);
INSERT INTO t_log_code_num (`server_id`, `date`, `code`, `num`) VALUES (‘2‘, ‘2017-07-29‘, ‘201203‘, ‘379‘);

3.数据显示

技术分享

4.统计sql

select t.`code`,
    sum(case t.date when ‘2017-07-29‘ then t.num else 0 end ) as ‘2017-07-29‘,
    sum(case t.date when ‘2017-07-30‘ then t.num else 0 end ) as ‘2017-07-30‘,
    sum(case t.date when ‘2017-07-31‘ then t.num else 0 end ) as ‘2017-07-31‘
 from (
select date,code, sum(num) num from t_log_code_num GROUP BY date,code
) t GROUP BY t.`code`;

5.统计结果

技术分享

代码如下:

CREATE TABLE `t_log_code_num` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `server_id` int(3) NOT NULL,
  `date` date NOT NULL,
  `code` varchar(20) NOT NULL,
  `num` int(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO t_log_code_num (`server_id`, `date`, `code`, `num`) VALUES (1, 2017-07-31, 201058, 1);
INSERT INTO t_log_code_num (`server_id`, `date`, `code`, `num`) VALUES (2, 2017-07-31, 201612, 2113);
INSERT INTO t_log_code_num (`server_id`, `date`, `code`, `num`) VALUES (1, 2017-07-30, 201058, 1);
INSERT INTO t_log_code_num (`server_id`, `date`, `code`, `num`) VALUES (2, 2017-07-30, 201314, 310);
INSERT INTO t_log_code_num (`server_id`, `date`, `code`, `num`) VALUES (1, 2017-07-29, 201322, 1890);
INSERT INTO t_log_code_num (`server_id`, `date`, `code`, `num`) VALUES (2, 2017-07-29, 201203, 379);

SELECT * from t_log_code_num;

select t.`code`,
    sum(case t.date when 2017-07-29 then t.num else 0 end ) as 2017-07-29,
    sum(case t.date when 2017-07-30 then t.num else 0 end ) as 2017-07-30,
    sum(case t.date when 2017-07-31 then t.num else 0 end ) as 2017-07-31
 from (
select date,code, sum(num) num from t_log_code_num GROUP BY date,code
) t GROUP BY t.`code`;

 

mysql行转换为列

标签:结果   images   group by   ble   显示   ase   blog   key   bsp   

原文地址:http://www.cnblogs.com/zhouj/p/7269930.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!