
如上表,查询结果应为:

求SQL!
------解决思路----------------------
如果出现并列最高如何处理,这种写法速度快,但是如果出现并列的情况是任选一条
select 学科,
max(学生姓名)keep(dense_rank last order by 分数,rowid) 学生姓名,
MAX(分数)
from T
GROUP BY 学科
------解决思路----------------------
此种写法并列最高的都能取出来
select * from T T1
where not exists(select 1 from T WHERE 学科=T1.学科 AND 分数>T1.分数)