mysql行列转换
来源:互联网 发布:4g网络哪家好 编辑:程序博客网 时间:2024/05/15 23:46
//创建表
create table tb(name varchar(10),course varchar(10),score int)ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8 ;
插入数据
insert into tb values('张三' , '语文' , 74)insert into tb values('张三' , '数学' , 83)
insert into tb values('张三' , '物理' , 93)
insert into tb values('李四' , '语文' , 74)
insert into tb values('李四' , '数学' , 84)
insert into tb values('李四' , '物理' , 94)
有几个地方注意
SELECT name as 姓名,
case course WHEN '语文' THEN score else 0 END as 语文 from tb GROUP BY name 可以查出想要的结果,但是
SELECT name as 姓名,
case course WHEN '物理' THEN score else 0 END as 物理 from tb GROUP BY name查出的结果为0,分析可知我们按照名字分组后物理在最后,最前面显示的肯定是语文,由于分组后它仍然排在第一,我们不按照名字分组时查出的结果是6个,如下图,当我们分组后自然最先显示最开始的两个为0的,这里可以想象按照名字分组是把相同的从上往下压缩。
把它改为下面就行了
SELECT name as 姓名,
max(case course WHEN '物理' THEN score else 0 END) as 物理 from tb GROUP BY name
经过下面转化后得到
select name as 姓名,
max(case course WHEN '语文' THEN score else 0 END)as 语文,
max(case course WHEN '物理' THEN score else 0 END)as 物理
from tb
GROUP BY name;
- Mysql行列转换
- mysql行列转换
- Mysql 行列转换
- mysql行列转换示例
- mysql 行列转换
- mysql 行列转换方式
- MySQL的行列转换
- Mysql行列转换
- MySQL 行列转换
- Mysql-行列转换
- mysql行列转换
- mysql行列转换
- mysql的行列转换
- mysql行列转换
- mysql行列转换
- mysql行列转换方法总结
- mysql行列转换方法总结
- mysql行列转换方法总结
- 二分图匹配csu1887Cuckoo Hashing
- Java网络爬虫(七)--实现定时爬取与IP代理池
- 第九周:[Leetcode]494. Target Sum
- 让创新野蛮生长
- ECMAScript 6(8)——正则表达式的扩展
- mysql行列转换
- 急急急,毕业设计,项目:基于百度lbs的车辆监控系统的设计与实现
- 从头到尾彻底解析Hash表算法
- win10环境下shadowsocks+VM12.5.2下ubuntu使用谷歌搜索
- IDEA2017.2最新版BUG
- 51Nod1010 只包含因子2 3 5的数 (二分
- 【SQL基础】case when和decode的用法与区别
- POJ2602-Superlong sums
- ORA-01017: invalid username/password; logon denied