美文网首页
mysql中的数据透视表/视觉透视表

mysql中的数据透视表/视觉透视表

作者: 鲸鱼酱375 | 来源:发表于2019-06-09 05:39 被阅读0次

1. 使用case创建

eg:


image.png
CREATE TABLE `test_pivot` (
  `pid` bigint(20) NOT NULL AUTO_INCREMENT,
  `company_name` varchar(32) DEFAULT NULL,
  `action` varchar(16) DEFAULT NULL,
  `pagecount` bigint(20) DEFAULT NULL,
  PRIMARY KEY (`pid`)
) ENGINE=MyISAM;
SELECT  P.`company_name`,
    COUNT(
        CASE 
            WHEN P.`action`='EMAIL' 
            THEN 1 
            ELSE NULL 
        END
    ) AS 'EMAIL',
    COUNT(
        CASE 
            WHEN P.`action`='PRINT' AND P.`pagecount` = '1' 
            THEN P.`pagecount` 
            ELSE NULL 
        END
    ) AS 'PRINT 1 pages',
    COUNT(
        CASE 
            WHEN P.`action`='PRINT' AND P.`pagecount` = '2' 
            THEN P.`pagecount` 
            ELSE NULL 
        END
    ) AS 'PRINT 2 pages',
    COUNT(
        CASE 
            WHEN P.`action`='PRINT' AND P.`pagecount` = '3' 
            THEN P.`pagecount` 
            ELSE NULL 
        END
    ) AS 'PRINT 3 pages'
FROM    test_pivot P
GROUP BY P.`company_name`;

eg2:


image.png
select name,
sum(case sex when "female" then tizhong else 0 end) as female ,
sum(case when sex="male" then tizhong else 0 end) as male,
sum(case when sex="unknown" then tizhong else 0 end) as unknown
from x 

GROUP BY name;

2.使用变量

set一个用户变量
eg:


image.png
SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'max(CASE WHEN TagName = ''',
      TagName,
      ''' THEN p.value END) AS `',
      TagName, '`'
    )
  ) INTO @sql
FROM tags;


SET @sql 
  = CONCAT('SELECT p.postid, ', @sql, ' 
           from triples p
           left join tags t
             on p.tagid = t.id
           group by p.postid');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

reference:
https://codeday.me/bug/20170412/9835.html
http://www.voidcn.com/article/p-qeaasmgs-bth.html

相关文章

  • 你好,数据透视表——小白聊财务(4)

    你好,数据透视表你好,数据透视表你好,数据透视表你好,数据透视表你好,数据透视表你好,数据透视表你好,数据透视表你...

  • mysql中的数据透视表/视觉透视表

    1. 使用case创建 eg: eg2: 2.使用变量 set一个用户变量eg: reference:https:...

  • 数据透视表12月3日

    数据透视表 12月3日 本节学习目录 数据透视表的概念 数据透视表的特点 数据透视表的运用技巧 一、数据透视表的概...

  • 数据透视表及美化

    一、 创建数据透视表: 1 插入→数据透视表 2 数据透视表选项→显示→选择经典透视表 3 拖动字符 4 数据透视...

  • Day21数据透视表

    数据透视表-基本介绍四点 创建数据透视表、数据透视表的整理、转换为普通表格、刷新所有数据透视表 在对数据透视表处理...

  • Excel学习笔记6

    数据透视表应用 1.创建数据透视表 2.更改数据表汇总方式 3.数据透视表中的组合 4.汇总多列数据 5.再透视表...

  • 打卡23天

    数据透视表 (1) 如何插入数据透视表:选中任意数据——插入数据透视表—如需要经典模式(数据透视表选项——显示——...

  • 认识数据透视表

    Day 17 认识数据透视表&数据透视表布局及美化 2019.01.26 认识数据透视表 一、数据透视表(数据分析...

  • 认识数据透视表&数据透视表布局及美化

    Day 17 认识数据透视表&数据透视表布局及美化 2019.01.26 认识数据透视表 一、数据透视表(数据分析...

  • 美化数据透视表

    一、 创建数据透视表: 1 插入→数据透视表 2 数据透视表选项→显示→选择经典透视表 3 拖动字符 4 ...

网友评论

      本文标题:mysql中的数据透视表/视觉透视表

      本文链接:https://www.haomeiwen.com/subject/mopbxctx.html