比如有一个全年级成绩表(grade):
id | name(姓名) | score(分数) | class_id(班级) |
1 | 张三 | 68 | 1 |
2 | 李四 | 70 | 1 |
3 | 王五 | 85 | 1 |
4 | 刘六 | 63 | 2 |
5 | 陈七 | 90 | 2 |
...... | ...... | ...... | ...... |
一,查询分组后单条记录
比如现要求查询出每个班级成绩最好的:
1,分组后取最大的(错误)
SELECT *, MAX(score) as maxscore FROM `grade` GROUP BY class_id
这个sql只能查询出每个班级的最高分(class_id,maxscore),其它字段数据完全不是最高分的匹配记录
2,排序后分组