zoukankan      html  css  js  c++  java
  • mysql行转换为列

    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`;
  • 相关阅读:
    OpenResty 作者章亦春访谈实录
    linux 下C语言学习路线
    swift 集合类型
    不懂技术的人不要对懂技术的人说这很容易实现
    java学习笔记7--抽象类与抽象方法
    java学习笔记6--类的继承、Object类
    python练习题
    python的里字典和列表
    python里list列表,tuple元组内部功能介绍
    python里float和long内部功能及字符串str介绍
  • 原文地址:https://www.cnblogs.com/zhouj/p/7269930.html
Copyright © 2011-2022 走看看