mysql 横表和纵表转换
来源:互联网 发布:数据库王珊第5版答案 编辑:程序博客网 时间:2024/05/29 03:58
原文http://blog.163.com/yibei_kukafei/blog/static/30021021201223195559409/
(1)表tb1有如下数据:
姓名 语文 数学 物理
张三 68 89 99
李四 90 66 78
现在要求写出查询语句得到如下查询结果
name subject score
张三 语文 68
张三 数学 89
张三 物理 99
李四 语文 90
李四 数学 66
李四 物理 78
sql语句如下:
select 姓名 as name,'语文' as subject,语文 as score from tb1
union
select 姓名 as name,'数学' as subject,数学 as score from tb1
union
select 姓名 as name,'物理' as subject,物理 as score from tb1
order by name
或者:
select * from(
select 姓名 as name,'语文' as subject,语文 as score from tb1
union
select 姓名 as name,'数学' as subject,数学 as score from tb1
union
select 姓名 as name,'物理' as subject,物理 as score from tb1
)tb
order by name
(2)tb2表有如下数据:
name subject score
张三 语文 74
张三 英语 88
张三 物理 90
李四 语文 88
李四 英语 67
李四 物理 95
通过查询得到如下数据:
姓名 语文 英语 物理
张三 74 88 90
李四 88 67 95
sql语句如下:
select name as '姓名',
max(case subject when '语文' then score else 0 end) 语文,
max(case subject when '英语' then score else 0 end) 英语,
max(case subject when '物理' then score else 0 end)物理
from tb2
group by name
现在要求写出查询语句得到如下结果:
姓名 语文 英语 物理 总分 平均分
张三 74 88 90 252 84
李四 88 67 95 250 83.33
sql:
select name '姓名',
max(case subject when '语文' then result else 0 end) 语文,
max(case subject when '物理' then result else 0 end) 物理,
max(case subject when '英语' then result else 0 end)英语,
sum(result) as 总分,
avg(result) as 平均分
from tb
group by name
- mysql 横表和纵表转换
- mysql 横表和纵表转换
- mysql 横表和纵表转换
- MySQL横表和纵表的相互转换
- MYSQL中竖表和横表之间的相互转换
- MySQL中竖表和横表之间的相互转换
- MYSQL中竖表和横表之间的相互转换
- MySQL中竖表和横表之间的相互转换
- MySQL中竖表和横表之间的相互转换
- MySQL中竖表和横表之间的相互转换
- MySQL表转换
- mysql独立表空间和共享表空间的转换
- Rails 将 mysql 数据库和表转换成 utf-8
- MySql表数据行列转换
- mySql 数据库表行列转换
- MYSQL表的线性转换
- Mysql 转换表的引擎
- Mysql转换表的引擎
- 归并排序(2-路)
- android开发技术博客
- PostgreSQL学习手册(客户端命令<二>)
- Hibernate的二级缓存
- hdu5009Paint Pearls dp
- mysql 横表和纵表转换
- sql替换NOT IN语句
- 秒杀多线程第六篇---经典线程同步 事件Event
- nyoj--914--Yougth的最大化(二分查找)
- webpy源码阅读
- codeforces-441B-Valera and Fruits【暴力】
- 关于平方和立方和,注意范围的取值顺序
- sicily 1125. Arnie versus the IRS
- ios swift UILabel 颜色使用图片