mysql 查询
问题:请用一条sql语句找出每个学生考的最好的成绩
方法一:
首先,我们需要将这些学生通过名字和分数进行排序,通过名字,将一为同学的数据放到一起来,通过分数的降序,将高分排到上面。
select name,scores from result2 order by name asc,scores desc;
然后,我们可以将上面查询的结果看成一个小小的表,再对这个表进行查询,来达到我们的目的,因为group by只返回一条数据。
select * from (select name,scores from result2 order by name asc,scores desc) as b group by name;
方法二:
直接通过max()取最大值,
这两种方法都有个小问题, 当 id=6的liu的分数为100时,结果是错误的。
没想得通是为什么。哪位高手看了能帮我解答一二?且小弟还比较菜,若哪里还有问题,欢迎指出。感激不尽!!