我们想跑一个数据,格式如下图:

但是我们一般的mysql语句跑出来的数据却是下面这样,不但不方便查看,在数据量比较大的时候,我们需要每个地区都转置粘贴一遍,耗时耗力还容易出错,下面提供一个方法,可以让跑出来的数据就是你一开始想要的样子(上图),不但方便线上化的查看,也方便线下的粘贴。


Mysql 行列转置方法

代码 - case when语句:

SELECT t.`地区`,
COUNT(DISTINCT (case WHEN t.班级 =1 THEN t.学号 end)) AS'班级1',
COUNT(DISTINCT (case WHEN t.班级 =2 THEN t.学号 end)) AS'班级2',
COUNT(DISTINCT (case WHEN t.班级 =3 THEN t.学号 end)) AS'班级3',
COUNT(DISTINCT (case WHEN t.班级 =4 THEN t.学号 end)) AS'班级4'
FROM cm1_0625 t
where t.`地区`<>'' GROUP BY 1;

代码 - IF语句:

SELECT t.`地区`,
COUNT(DISTINCT IF (t.班级 =1 , t.学号 ,0)) AS'班级1',
COUNT(DISTINCT IF (t.班级 =2 , t.学号 ,0)) AS'班级2',
COUNT(DISTINCT IF (t.班级 =3 , t.学号 ,0)) AS'班级3',
COUNT(DISTINCT IF (t.班级 =4 , t.学号 ,0)) AS'班级4'
FROM cm1_0625 t
where t.`地区`<>'' GROUP BY 1;

运行结果:


mysql行列转置-图文详解相关推荐

  1. MySQL 内部 临时表 图文 详解

    MySQL 内部 临时表 图文 详解 文章目录 MySQL 内部 临时表 图文 详解 1. 准备工作 2. 哪些场景会用到临时表? 3. 临时表用哪种存储引擎? 4. 内存临时表变磁盘临时表 5. 写 ...

  2. 【必知必会】手把手教你配置MySQL环境变量——图文详解

    一.先决条件 假设我们已经成功安装MySQL数据库.如果还有小伙伴不知道如何安装MySQL数据库,可以在本文下留言,留言数超20,则出一期"手把手教你安装MySQL数据库--图文详解&quo ...

  3. MySQL索引-视频+图文详解

    MySQL索引与二分查找法 DB哥MySQL高级教程-系统学习MySQL共149课时 加我微信公众号免费学:DB哥 文末有MySQL高级课程目录 前言 因为现在使用的mysql默认存储引擎是Innod ...

  4. MySQL - undo log 图文详解

    一 前言 undo log 是 innodb 实现,总的来说提供两个作用:回滚和多版本控制(MVCC).是事务特性的重要组成部分,在数据发生更新操作时候(INSERT.DELETE.UPDATE)时会 ...

  5. 【mysql】mysql数据库事务图文详解

    1.什么是事务 事务-Transaction:一个最小的不可再分的工作单元:通常一个事务对应一个完整的业务(例如银行账户转账业务),该业务就是一个最小的工作单元. 引入事务的主要目的:事务会把数据库从 ...

  6. mysql安装教程8.0.21安装_mysql8.0.21安装教程图文详解

    1.下载 下载链接 点击download,这里可能需要登录甲骨文的账号,登录一下即可 2.解压 下载好会得到一个安装包 把它解压到一个能找到的目录下即可,我的是这样(my.ini文件你们应该没有) 3 ...

  7. mysql 5.5.18下载_MySQL5.7.18下载和安装过程图文详解

    MySql下载 1.打开官网找到下载路口,这里直接给出下载的地址 2.选择64位版本 3.直接下载 MySql5.7.18.1安装过程 1   .运行安装软件,接受协议 2.选择默认安装 3.下一步到 ...

  8. mysql拷贝文件安装_Mysql5.7.18的安装与主从复制图文详解

    CentOS6.7安装mysql5.7.18 1.  解压到/usr/local目录 # tar -zxvf mysql-5.7.18-linux-glibc2.5-i686.tar.gz -C /u ...

  9. mysql数据库主主_MySQL主主复制(图文详解)

    MySQL主主复制(图文详解) 发布时间:2020-07-12 23:10:25 来源:51CTO 阅读:218 作者:BonnieJason 一.实现原理 主主复制即在两台MySQL主机内都可以变更 ...

最新文章

  1. LeetCode简单题之检查数组是否经排序和轮转得到
  2. java严格区分大小写吗_Java是否区分大小写?
  3. 一个java删除文件夹的小方法
  4. 线程返回值的方式介绍
  5. JanusGraph 安装
  6. python课后题答案第一章_Python程序设计课后习题答案-第一单元
  7. 我的世界服务器的交易系统,我的世界村民交易系统详解_我的世界交易系统介绍_牛游戏网...
  8. 树莓派(Raspberry Pi)搭建简单的lamp服务
  9. Q8 凯立德 J07 升级方法
  10. 【Python05】Python转义字符
  11. 脑语言2500令v0.5.5
  12. 烤仔的客厅 | 明晚7:30,KAKA和烤仔在b站等你~
  13. Linux利用终端执行命令,linux – 通过/ dev / pts在另一个终端中执行命令
  14. Java代码实现奇数和偶数的判断
  15. 关于Adobe flash player 本地播放器
  16. 关于length specifier
  17. SAP 谈谈存货分析报表
  18. 什么是前端渲染和后端渲染和SPA页面
  19. 信息安全-零信任技术-SDP是什么,SDP可以防御哪些安全威胁
  20. matching wildcard is strict, but no declaration can be found for element forcontext:property-plac

热门文章

  1. Notadd 2.0 全新 Node.js 版本~ (开发中) [从 PHP 到 node 的踩坑记]
  2. Java的几个同步辅助类
  3. What code you will get when you create a wcf library
  4. boost::scoped_ptr与std::unique_ptr
  5. C++中使用try{}catch()的优/缺点
  6. 使用croc命令在Linux系统电脑之间传输文件和文件夹
  7. 同事说rar压缩有风险,让我用zip压缩文件
  8. 我等这个含蓄的技术男当上了CEO
  9. C语言指针:从底层原理到花式技巧,用图文和代码帮你讲解透彻
  10. C语言验证大小端的几个方法