group by和求最值的使用
直接开始:
首先是表数据
要求①: 查询出学生的各个科目和其成绩, 科目的成绩以最高分为最终结果,并按照uid正序排列
细化思路:
第一步 查询学生,科目及其成绩:
SELECT uid,uname,ucourse,uscores
FROM users;
第二步 用group by对uname和ucourse进行分组,并对score取最大值.
在这里初学者可能写错的一个做法是:
SELECT uid,uname,ucourse,MAX(uscores)
FROM users
GROUP BY ucourse,uname;
这种写法会导致的错误是, select之后的max函数选取的结果,可能跟你源数据表的记录不一样, 因为group by之后的数据(uid,uname,uc