有这个表A
学号 姓名 科目 成绩
1001 小小 语文 66
1001 小小 数学 70
1002 毛毛 语文 80
1002 毛毛 数学 56
怎么把他合并成下面这个表
学号 姓名 语文 数学 总分
1001 小小 66 70 136
1002 毛毛 80 56 136
给出具体的方法
oracle 合并数据
答案:4 悬赏:0 手机版
解决时间 2021-01-26 09:05
- 提问者网友:愿为果
- 2021-01-25 11:31
最佳答案
- 五星知识达人网友:舍身薄凉客
- 2021-01-25 13:08
正确答案:
Select 学号,
姓名,
Sum(Case 科目
When '语文' Then
成绩
Else
0
End) As 语文,
Sum(Case 科目
When '数学' Then
成绩
Else
0
End) As 数学,
Sum(成绩) As 总分
From 表a
Group By 学号,
姓名,
Select 学号,
姓名,
Sum(Case 科目
When '语文' Then
成绩
Else
0
End) As 语文,
Sum(Case 科目
When '数学' Then
成绩
Else
0
End) As 数学,
Sum(成绩) As 总分
From 表a
Group By 学号,
姓名,
全部回答
- 1楼网友:上分大魔王
- 2021-01-25 15:20
SELECt 学号,姓名,max(decode(科目,'语文',成绩)) 语文,max(decode(科目,'数学',
成绩)) 数学,sum(成绩) 总分
FROM test
group by 学号,姓名
- 2楼网友:街头电车
- 2021-01-25 14:27
select a1,count(*) from (
select a1 from x
union all
select a2 from x
) group by a1
order by a1;
- 3楼网友:渡鹤影
- 2021-01-25 13:44
直接执行下面的sql语句,就可以出结果:
select a.学号 as 学号,a.姓名 as 姓名,a.成绩 as 语文,b.成绩 as 数学,(a.成绩+b.成绩) as 总分 from A as a left join A as b on a.学号=b.学号 where a.科目='语文' and b.科目='数学';
如果要新生成一个表B,执行:
create tabel B as select a.学号 as 学号,a.姓名 as 姓名,a.成绩 as 语文,b.成绩 as 数学,(a.成绩+b.成绩) as 总分 from A as a left join A as b on a.学号=b.学号 where a.科目='语文' and b.科目='数学';
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯