有一个这样的表 test1,问题如下:
1.如何查出每一门科目中分数最高的那位学生的姓名,课程以及分数?
2.如何查出每一门科目中分数排名前二的学生的姓名,课程以及分数?
好的,那么开始吧,感觉很基础嘛
1 .... 第一个问题:查出每一门科目中最大的一项, 想到两种方式
<1.1>
select *from( select * from test1 order by score desc) tgroup by course
效果是这样的
咦,想想这样确实不好,凭什么两个数学满分的,就给出来一个呀,另外一个呢,没办法,group by 一项的时候只会返回一项
<1.2>
select w.name,t.* from(select course,MAX(score) score from test1 group bycourse) tinner jointest1 won w.score=t.scoreand w.course=t.course