sql行转列
来源:互联网 发布:淘宝整点秒杀技巧 编辑:程序博客网 时间:2024/06/01 09:32
姓名课程分数
张三语文 74
张三数学 83
张三物理 93
李四语文 74
李四数学 84
李四物理 94
想变成(得到如下结果):
姓名语文数学物理
---- ---- ---- ----
李四 74 84 94
张三 74 83 93
-------------------
创建表:
create table stu_score(
name varchar(20),
cource varchar(20),
score int
);
INSERT INTO stu_score VALUES('zhangsan', '数学', 76);
INSERT INTO stu_score VALUES('zhangsan', '语文', 77);
INSERT INTO stu_score VALUES('zhangsan', '英语', 66);
INSERT INTO stu_score VALUES('lisi', '数学', 45);
INSERT INTO stu_score VALUES('lisi', '语文', 67);
INSERT INTO stu_score VALUES('lisi', '英语', 99);
步骤:
- 按姓名分组,分组查询字段为姓名和最大值
- 在最大值中设置:
- 如果你想查询语文成绩,那么就通过case或者if设置为正常值,将其与的分数设置为0
- 对这个值取sum或者max
3、IF(id='某值',value1,value2)
value1:true时取值
value2:false时取值
4、如果在group by后加上WITH ROLLUP将会统计出总值。
写法:
SELECT s.name,SUM(IF(s.courcr='数学',score,0)) AS 数学,SUM(IF(s.courcr='语文',score,0)) AS 语文 ,SUM(IF(s.courcr='英语',score,0)) AS 英语 FROM stu_score s GROUP BY s.name;
冯慧 15冯慧 24冯慧 33冯慧 42冯慧 51张瑞雪11张瑞雪21张瑞雪31张瑞雪41张瑞雪51杨玉茹13杨玉茹23杨玉茹33杨玉茹43杨玉茹53杨月圆14杨月圆24杨月圆34杨月圆44杨月圆54罗妃15罗妃25罗妃35罗妃45罗妃55唐志琦15唐志琦25唐志琦35唐志琦45唐志琦55刘江波15刘江波25刘江波35刘江波45刘江波55
- SQL-行转列
- SQL 行转列
- SQL行转列
- Sql 行转列
- SQL行转列
- sql 行转列
- sql行转列
- sql 行转列
- sql 行转列
- SQL 行转列
- SQL 行转列
- SQL行转列
- sql行转列
- sql 行转列
- sql行转列
- SQL行转列
- SQL行转列
- 行转列SQL
- DirectX11 混合方程
- qa是
- scp:command not found
- solr Error initializing QueryElevationComponent.
- 超级猜图
- sql行转列
- storm rebalance 命令调整topology并行数及问题分析
- 【IOS 开发学习总结-OC-30】★★OC之foundation 框架——集合(NSSet 与 NSMutableSet)
- tomcat配置https启动出现"No Certificate file specified or invalid file format"异常
- unknown host www.baidu.com network is unreachable
- xcode中如何重命名文件夹
- 无题(二):字符串翻转(结合内存四区)
- 安装插件的方法
- 查询109号员工的员工号,员工名,工资,使用记录类型变量的字段接收查询结果