+ -
当前位置:首页 → 问答吧 → 求一条SQL

求一条SQL

时间:2011-12-07

来源:互联网

表结构

学号 分数 科目
1 90 数学
1 91 英语
1 92 语文
1 93 生物
2 90 数学
2 91 英语
2 92 语文
3 91 英语
3 92 语文
3 93 生物

求每个学号的总分,最高分,以及最高分对应的科目。

怎么写sql,不要用with

作者: mtv0199   发布时间: 2011-12-07

SQL code
select m.* , n.科目 from
(select 学号 , sum(分数) "总分" , max(分数) "最高分" from tb group by 学号),
(select t.* from tb t where 分数 = (select max(分数) from tb where 学号 = t.学号)) n
where m.学号 = n.学号
order by m.学号

select m.* , n.科目 from
(select 学号 , sum(分数) "总分" , max(分数) "最高分" from tb group by 学号),
(select t.* from tb t where not exists (select 1 from tb where 学号 = t.学号 and 分数 > t.分数)) n
where m.学号 = n.学号
order by m.学号

作者: dawugui   发布时间: 2011-12-07