为了账号安全,请及时绑定邮箱和手机立即绑定

SQL数据行列转换及分组

SQL数据行列转换及分组

郎朗坤 2018-12-06 12:12:36
问题描述:求对一个数据表进行行列转换的语句。 表格数据示例: 姓名 课程 期中分数 期末分数 作业分数 a      语文    80          70          90 a       数学    90         80           90 b       语文      70       80          80 b       数学       90       80            80 结果: 姓名 语文期中分数 语文期末分数 语文作业分数 数学期中分数 数学期末分数 数学作业分数 a          80                 70               90                    90                 80            90 b          70                  80                80                  90                   80           80
查看完整描述

2 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

select 

姓名,

sum(case 课程 when 语文 then 其中分数 else 0 end) as 语文期中分数,

sum(case 课程 when 语文 then 期末分数 else 0 end) as 语文期末分数,

sum(case 课程 when 语文 then 作业分数 else 0 end) as 语文作业分数,

sum(case 课程 when 数学 then 其中分数 else 0 end) as 数学期中分数,

sum(case 课程 when 数学 then 期末分数 else 0 end) as 数学期末分数,

sum(case 课程 when 数学 then 作业分数 else 0 end) as 数学作业分数

from  .....

group by 姓名

查看完整回答
反对 回复 2019-01-07
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

如果动态的,写一个存储过程,写个临时表把“课目,姓名”group by 出来后,就容易了。

查看完整回答
反对 回复 2019-01-07
  • 2 回答
  • 0 关注
  • 587 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信