为什么80%的码农都做不了架构师?>>>   

最近准备面试题,想之前面试过一家公司时遇到一个SQL题,横向展示一个表中数据,当时没写出现写下总结,以免忘记。

-- ----------------------------
-- Table structure for `t_subject`
-- ----------------------------
DROP TABLE IF EXISTS `t_subject`;
CREATE TABLE `t_subject` (`id` int(11) NOT NULL DEFAULT '0',`name` varchar(255) DEFAULT NULL,`subject` varchar(255) DEFAULT NULL,`results` int(11) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of t_subject
-- ----------------------------
INSERT INTO `t_subject` VALUES ('1', '小明', '语文', '50');
INSERT INTO `t_subject` VALUES ('2', '小明', '数学', '20');
INSERT INTO `t_subject` VALUES ('3', '小乐', '英语', '122');
INSERT INTO `t_subject` VALUES ('4', '小乐', '语文', '500');
INSERT INTO `t_subject` VALUES ('5', '小二', '数学', '100');

有一张表,表中包含一个三个人有三个科目。

SELECTt.name ,SUM(IF (t.subject = '语文',t.results,0)) AS '语文',SUM(IF (t.subject = '数学',t.results,0)) as '数学',SUM(IF (t.subject = '英语',t.results,0)) as '英语'
FROMt_subject t
GROUP BY (t.name);

执行结果如下:

当时很好奇为什么需要加SUM函数进行求和,去掉之后执行SQL如下

初步分析如果不加此函数SQL执行默认只会对进行分组后的数据进行统计

SELECT*
FROMt_subject t
GROUP BY t.name;

-- ----------------------------
-- Table structure for `code_a`
-- ----------------------------
DROP TABLE IF EXISTS `code_a`;
CREATE TABLE `code_a` (`id` int(2) NOT NULL AUTO_INCREMENT,`time` date DEFAULT NULL,`code` varchar(100) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of code_a
-- ----------------------------
INSERT INTO `code_a` VALUES ('1', '2015-03-24', '胜');
INSERT INTO `code_a` VALUES ('2', '2015-03-24', '胜');
INSERT INTO `code_a` VALUES ('3', '2015-03-24', '负');
INSERT INTO `code_a` VALUES ('4', '2015-03-23', '胜');
INSERT INTO `code_a` VALUES ('5', '2015-03-23', '负');
INSERT INTO `code_a` VALUES ('6', '2015-03-26', '负');

SELECTt.time ,SUM(IF (t.code = '胜',1,0)) AS '胜',SUM(IF (t.code = '负',1,0)) as '负'
FROMcode_a t
GROUP BY (t.time);

转载于:https://my.oschina.net/luckyi/blog/270944

MYSQL 横向展示数据相关推荐

  1. oracle or使用速度快马_使用mysqld_exporter监控MySQL并展示数据

    mysqld_exporter是Prometheus用于监控MySQL指标的一个导出器,支持对MySQL 5.5以上进行监控.用来抓取mysql的相关信息,下面是mysqld_exporter 安装的 ...

  2. mysql 分组统计 及 统计结果横向展示

    文章目录 范围分组 需求说明 示例 sum 与 case when组合 类别值分组 需求说明 示例 group by . sum 与 case when组合 本文主要介绍mysql常用的两种分组情况: ...

  3. mysql横向纵向_mysql怎么更改纵向变横向排列

    本篇文章将介绍如何使用sql语句将表数据从纵向展示改为横向展示. mysql中,查询纵向转横向可用case when语句,具体步骤如下: 第一步,创建数据表,我这里已创建完成,以下是展示数据图. 第二 ...

  4. Linux从mysql中读取数据_linux shell中读写操作mysql数据库

    本文介绍了如何在shell中读写mysql数据库.主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为 ...

  5. 利用Ajax实现数据的同步传输,从mysql中提取数据,通过echarts可视化

    如何将mysql数据库中的方式通过echarts可视化呢,以下面这个简单的例子向大家进行演示:   步骤一:mysql的创表和插入数据,当然这些数据也可以是你通过爬虫抓取的.     步骤二:   创 ...

  6. 数据创造价值_展示数据并创造价值

    数据创造价值 To create the maximum value, urgency, and leverage in a data partnership, you must present th ...

  7. mysql存储过程更新数据后返回一个字段_史上最全存储引擎、索引使用及SQL优化的实践...

    整个MySQL Server由以下组成 : Connection Pool :连接池组件 Management Services & Utilities :管理服务和工具组件 SQL Inte ...

  8. recycleview横向展开_android 横向recyclerView 数据居中,从中间往两边展开显示

    android 横向recyclerView 数据居中,从中间往两边展开显示 很多人的recyclerView都是自定义过后的recyclerView,所以我这里就不展示recyclerView了 横 ...

  9. 分布式日志sleuth+分布式追踪系统zipkin+消息中间件rabbitMQ+MySQL存储跟踪数据

    一.了解分布式架构下系统的监控问题 接口监控问题 监测性能瓶颈 解决方案:Sleuth 日志监控问题 日志分散 解决方案:ELK+Kafka 二.使用Sleuth实现大觅网微服务跟踪 1.打开一个分布 ...

最新文章

  1. Androidi性能优化之多线程和同步
  2. ajax请求文件下载 php,使用Ajax请求下载文件
  3. WebSocket FlashSocket
  4. 理解 JavaScript 闭包
  5. 日志分析系统分类有哪些_什么是网站日志分析需要分析哪些内容
  6. lassAtitit事件代理机制原理 基于css class的事件代理的事件代理titi
  7. 计算机软件师倾斜怎么能摆正,ps中怎么把倾斜图案拉直
  8. .click()与on('click',function())
  9. 在合并单元格中数组公式无效_Excel|普通公式无法有效解决问题时使用数组公式...
  10. kab12.dll 病毒的分析
  11. VA液晶屏底色发白是什么原因?
  12. 仿小米视频下滑视频动画效果
  13. Javascript的mouseover和mouseenter的区别
  14. 范畴(Category)
  15. cocos2d 高仿doodle jump 无源代码
  16. 微信公众平台为什么会火
  17. onvif 视频28181 1400 区别
  18. htc viveVR、SteamVR 如何实现看krpano制作的全景
  19. PDF页面大小方向调整
  20. 精读大话数据结构,陪你拿下45分 EP2

热门文章

  1. tomcat配置报错解决方法 The jre_home environment variable is not defined correctly
  2. 【部署问题】解决Nginx: [error] open() "/usr/local/Nginx/logs/Nginx.pid“ failed(2:No such file or directory)
  3. 如何在不安装Microsoft Office的情况下用C#创建Excel(.XLS和.XLSX)文件?
  4. win11桌面图标模糊怎么办 windows11桌面图标模糊的解决方法
  5. bootstrap table 光标_第三章之Bootstrap 表格与按钮功能
  6. 全向轮机器人运动模型及应用分析
  7. linux共享内存 dest,关于linux 共享内存查看已经完整释放
  8. 胡伟武计算机体系结构2版pdf_最新重大版重庆高中英语必修模块1/2/3/4课文听力单词录音MP3音频+电子课本PDF+课件+教案+试题...
  9. ubantu实现linux命令的实验_linux 基础知识
  10. snmpset对象不可写_别再问了,好吗?Java字符串一定是不可变的